{
  "contractName": "MockERC1155CreatorExtensionOverride",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "AdminApproved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "AdminRevoked",
      "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"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "approveAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAdmins",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "admins",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "isAdmin",
      "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": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "revokeAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "setApproveTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "testMintNew",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "setApproveEnabled",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "name": "approveTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyaltyOverrides",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getRoyalties",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AdminApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AdminRevoked\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"approveAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"approveTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAdmins\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getRoyalties\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"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\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"revokeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setApproveEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setApproveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"setRoyaltyOverrides\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"testMintNew\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approveAdmin(address)\":{\"details\":\"See {IAdminControl-approveAdmin}.\"},\"getAdmins()\":{\"details\":\"See {IAdminControl-getAdmins}.\"},\"getRoyalties(address,uint256)\":{\"details\":\"See {ICreatorExtensionRoyalties-getRoyalties}\"},\"isAdmin(address)\":{\"details\":\"See {IAdminControl-isAdmin}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"revokeAdmin(address)\":{\"details\":\"See {IAdminControl-revokeAdmin}.\"},\"setApproveTransfer(address,bool)\":{\"details\":\"See {IERC1155CreatorExtensionApproveTransfer-setApproveTransfer}\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/mocks/MockERC1155CreatorExtensionOverride.sol\":\"MockERC1155CreatorExtensionOverride\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":25},\"remappings\":[]},\"sources\":{\"@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol\":{\"keccak256\":\"0xaed5e7784e33745ab1b16f1d87b22084a8b25d531c1dcb8dc41fc2a89e2617da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44837a9cc639062b2d7424a10e9d579b8d3a9bc1cefede2cfbb917bee8f452ae\",\"dweb:/ipfs/QmburkqmRDZYWjKPRUynhdfkAfP5QDKcXH4WCbH1JC8UDq\"]},\"@manifoldxyz/libraries-solidity/contracts/access/IAdminControl.sol\":{\"keccak256\":\"0x7cc2e4e7d9052532f445e62ec1fa2f05cc0f5d1d8ee1fea913b43a132277bf2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://266618317d0654fe209b5450b8b5afa3a4a8d41294a2b37ddbae540099859887\",\"dweb:/ipfs/QmYksDqoxhachoqZquXGtjfiuAWJ1rxAKLtUYPL3YboBkE\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b\",\"dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"project:/contracts/core/CreatorCore.sol\":{\"keccak256\":\"0x6e8b20c32d6122ed1d23af683260ea242f1197dc95b063b63ccfac5b90e65f31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bffa862c93d614e9d5727ff595cb8595dbb9eae43bfdf06f65c7331aec09c268\",\"dweb:/ipfs/QmUsPC55S2vdfQWL3HQTYDz66yRFhdbPGCjr1NYyxBT83P\"]},\"project:/contracts/core/ICreatorCore.sol\":{\"keccak256\":\"0x6bdcb757953594d3a259f1d68ec3d208ca42dba02115f08a6e32e2936ccb0349\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd1853dabcd57eb9b735b3991cf59259cd28cdeca1353495b5c59dc0db2d85df\",\"dweb:/ipfs/QmfJLFZ7RoMvdR7kJLR7QmqreS1x5VNJSa7xvjVsC4mXte\"]},\"project:/contracts/core/IERC1155CreatorCore.sol\":{\"keccak256\":\"0xc91d0050b622fbb41b7516c6a8c75ab6236e6a52feab681d36fb75b8b49fc8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f045081bb40c91837c076530bb07b9f8b7fa77cbd1191748a12920f01f1678f8\",\"dweb:/ipfs/QmP5kx53wBz2eUqZV26ttYJmsHP7R9n3rF6dAbTjVPh5gL\"]},\"project:/contracts/core/IERC721CreatorCore.sol\":{\"keccak256\":\"0xb168262afd1960a48d9c2088b7c24df3c0e5e190d2e2451e8af38983cf713bad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b8e621daf8a34967aa796482e02521390328f84a130f064e67aafc1b11748e5\",\"dweb:/ipfs/QmRC4suf2UXxkfy9NazSHwVAHLFeuzqAuQPmZrf1KQfX7f\"]},\"project:/contracts/extensions/CreatorExtension.sol\":{\"keccak256\":\"0x36fe8d17e2364675e2bdd3fc6539976613cac057db580f3d43a202865f7f5cc9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a6f47309d37ef8dcc76802ab2c8a1500b2160099c9e368f6ac0bf05175e0b97\",\"dweb:/ipfs/QmbyMW37myT5wuQuAjTcna7AuEn8b5EgUh2sPqR9VSTF3B\"]},\"project:/contracts/extensions/CreatorExtensionRoyalties.sol\":{\"keccak256\":\"0xc965562ddb6e88694ffa5051d9cdde3959ef037f9ccc1f48fb47585c0a1a5945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04d085cc56c36a3f486b2ef37826232919d1fe67c9226ff70ca1d478aa6ea444\",\"dweb:/ipfs/QmXL5Sg78BPeuw6wTAwkKVBNKA1aahGWoFLUCw1n6GKcqz\"]},\"project:/contracts/extensions/ERC1155/ERC1155CreatorExtensionApproveTransfer.sol\":{\"keccak256\":\"0xd2c0a1136e53bb3c65f872d7e762333df66b2e7b2b7bbb4faa2f01c3ac1b4573\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b38f20207f191f031fdc02e6388e6f035528dd45e066c945f6871f26ab376ae\",\"dweb:/ipfs/QmSkkbQF8jZwhJiPuYsPa59RZJTtz9Eht9EBR44a8Qn3uQ\"]},\"project:/contracts/extensions/ERC1155/IERC1155CreatorExtensionApproveTransfer.sol\":{\"keccak256\":\"0x721390972cc45ff82d97046f5b9e560369a4bf25ae1db2ee0998c8dfc484b782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f564087ce1ed42a2dbb0bd4dd463643ebb51dc8662c6a8ff34b073d94f38ca24\",\"dweb:/ipfs/QmNyZnZLe3dTxpCVLxA2hKamUjDUhds4BjSb7EvegS52yS\"]},\"project:/contracts/extensions/ICreatorExtensionRoyalties.sol\":{\"keccak256\":\"0xf61dcf7e6bc3e49e629630ad28377f079a31b154ecd0e604d1c0a51ae2a057f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fda5e6d49a47fbe347ed9198c1fff5555bd687a3a73d2a9f45d5c3a2d053e40\",\"dweb:/ipfs/QmdrLJ3rscxvpMTjdRp1FyhPtYDTDL1CCQyhFeLFuFkFXH\"]},\"project:/contracts/extensions/ICreatorExtensionTokenURI.sol\":{\"keccak256\":\"0x6c8ca804ee7dea9d78f0dacdd9233b1b75ca2b2fa517f52f0fdf6beb34780a51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a04a6f0cce2bbdb022a8125e147519c7fbaa89692c8f0cfee69a67a2956316f\",\"dweb:/ipfs/QmdUxwBEnFshm1j5FEcJctC7DbFWUznis2LaPcKR7FEZX7\"]},\"project:/contracts/mocks/MockERC1155CreatorExtensionOverride.sol\":{\"keccak256\":\"0x68f8ff2c20db62ce5da19deca259667f0e8c942de851cf2ea1d4125af1c828ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eebc83776d0770100475ce4fddb9b003f1ce160c5006b11e5fcb5314b9c7d806\",\"dweb:/ipfs/QmZtA1q6k72gwhzjPpoBpKDuBkBcFVrZXxU99KaY1F9iWe\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b5060405161180438038061180483398101604081905261002f916100ad565b6100383361005d565b600580546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b611718806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100d05760003560e01c806301ffc9a7146100d55780631b95a227146100fd57806324d7806c146101125780632d3456701461012557806331ae450b146101385780634aec8cc51461014d5780636d73e66914610160578063715018a6146101735780638da5cb5b1461017b5780639ca7dc7a1461019b578063d9accf92146101bc578063dc83b1b9146101dd578063e0df5b6f146101f0578063e483517714610203578063e9dc637514610222578063f2fde38b14610242575b600080fd5b6100e86100e3366004610d9b565b610255565b60405190151581526020015b60405180910390f35b61011061010b366004610def565b610280565b005b6100e8610120366004610e24565b6103d0565b610110610133366004610e24565b6103ff565b61014061045d565b6040516100f49190610e41565b61011061015b366004610ed2565b61050b565b61011061016e366004610e24565b610595565b6101106105ed565b610183610601565b6040516001600160a01b0390911681526020016100f4565b6101ae6101a9366004610f6b565b610610565b6040516100f4929190610f97565b6101106101ca36600461101b565b6003805460ff1916911515919091179055565b6101106101eb36600461110a565b610756565b6101106101fe3660046111d6565b6107a5565b6100e8610211366004611247565b60035460ff16979650505050505050565b610235610230366004610f6b565b6107b7565b6040516100f491906112ee565b610110610250366004610e24565b61087a565b60006001600160e01b0319821663e9dc637560e01b148061027a575061027a826108f0565b92915050565b33610289610601565b6001600160a01b031614806102a457506102a4600133610915565b6103015760405162461bcd60e51b8152602060048201526024808201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616044820152633236b4b760e11b60648201526084015b60405180910390fd5b610312826301f4921160e61b61093a565b6103715760405162461bcd60e51b815260206004820152602a60248201527f63726561746f72206d75737420696d706c656d656e7420494552433131353543604482015269726561746f72436f726560b01b60648201526084016102f8565b604051635606467d60e11b815281151560048201526001600160a01b0383169063ac0c8cfa90602401600060405180830381600087803b1580156103b457600080fd5b505af11580156103c8573d6000803e3d6000fd5b505050505050565b6000816001600160a01b03166103e4610601565b6001600160a01b0316148061027a575061027a600183610915565b610407610956565b610412600182610915565b1561045a5760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a36104586001826109b5565b505b50565b606061046960016109ca565b6001600160401b0381111561048057610480611036565b6040519080825280602002602001820160405280156104a9578160200160208202803683370190505b50905060005b6104b960016109ca565b811015610507576104cb6001826109d4565b8282815181106104dd576104dd61133c565b6001600160a01b0390921660209283029190910190910152806104ff81611368565b9150506104af565b5090565b600554604051634637423960e11b81526001600160a01b0390911690638c6e8472906105459089908990899089908990899060040161143b565b6000604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261058c91908101906114d3565b50505050505050565b61059d610956565b6105a8600182610915565b61045a5760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a36104586001826109e0565b6105f5610956565b6105ff60006109f5565b565b6000546001600160a01b031690565b60055460609081906001600160a01b038581169116146106425760405162461bcd60e51b81526004016102f890611558565b600083815260066020526040902054156107355760008381526006602090815260408083208151815460609481028201850184529281018381529093919284928491908401828280156106be57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106a0575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561071657602002820191906000526020600020905b815481526020019060010190808311610702575b505050505081525050905080600001518160200151925092505061074f565b505060408051600080825260208201908152818301909252905b9250929050565b604080518082018252838152602080820184905260008681526006825292909220815180519293919261078c9284920190610cea565b5060208281015180516103c89260018501920190610d4b565b60046107b28284836115f9565b505050565b6005546060906001600160a01b038481169116146107e75760405162461bcd60e51b81526004016102f890611558565b600480546107f490611579565b80601f016020809104026020016040519081016040528092919081815260200182805461082090611579565b801561086d5780601f106108425761010080835404028352916020019161086d565b820191906000526020600020905b81548152906001019060200180831161085057829003601f168201915b5050505050905092915050565b610882610956565b6001600160a01b0381166108e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f8565b61045a816109f5565b60006001600160e01b03198216634e53ee3d60e11b148061027a575061027a82610a45565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600061094583610a6a565b801561093357506109338383610a9d565b3361095f610601565b6001600160a01b0316146105ff5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102f8565b6000610933836001600160a01b038416610b26565b600061027a825490565b60006109338383610c19565b6000610933836001600160a01b038416610c43565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160e01b03198216637005caad60e01b148061027a575061027a82610c92565b6000610a7d826301ffc9a760e01b610a9d565b801561027a5750610a96826001600160e01b0319610a9d565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015610b0f575060208210155b8015610b1b5750600081115b979650505050505050565b60008181526001830160205260408120548015610c0f576000610b4a6001836116b9565b8554909150600090610b5e906001906116b9565b9050818114610bc3576000866000018281548110610b7e57610b7e61133c565b9060005260206000200154905080876000018481548110610ba157610ba161133c565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610bd457610bd46116cc565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061027a565b600091505061027a565b6000826000018281548110610c3057610c3061133c565b9060005260206000200154905092915050565b6000818152600183016020526040812054610c8a5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561027a565b50600061027a565b60006001600160e01b031982166001620e90cb60e41b0319148061027a575061027a8260006001600160e01b03198216632a9f3abf60e11b148061027a57506301ffc9a760e01b6001600160e01b031983161461027a565b828054828255906000526020600020908101928215610d3f579160200282015b82811115610d3f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610d0a565b50610507929150610d86565b828054828255906000526020600020908101928215610d3f579160200282015b82811115610d3f578251825591602001919060010190610d6b565b5b808211156105075760008155600101610d87565b600060208284031215610dad57600080fd5b81356001600160e01b03198116811461093357600080fd5b6001600160a01b038116811461045a57600080fd5b80358015158114610dea57600080fd5b919050565b60008060408385031215610e0257600080fd5b8235610e0d81610dc5565b9150610e1b60208401610dda565b90509250929050565b600060208284031215610e3657600080fd5b813561093381610dc5565b6020808252825182820181905260009190848201906040850190845b81811015610e825783516001600160a01b031683529284019291840191600101610e5d565b50909695505050505050565b60008083601f840112610ea057600080fd5b5081356001600160401b03811115610eb757600080fd5b6020830191508360208260051b850101111561074f57600080fd5b60008060008060008060608789031215610eeb57600080fd5b86356001600160401b0380821115610f0257600080fd5b610f0e8a838b01610e8e565b90985096506020890135915080821115610f2757600080fd5b610f338a838b01610e8e565b90965094506040890135915080821115610f4c57600080fd5b50610f5989828a01610e8e565b979a9699509497509295939492505050565b60008060408385031215610f7e57600080fd5b8235610f8981610dc5565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b82811015610fd95781516001600160a01b031684529284019290840190600101610fb4565b5050508381038285015284518082528583019183019060005b8181101561100e57835183529284019291840191600101610ff2565b5090979650505050505050565b60006020828403121561102d57600080fd5b61093382610dda565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561107457611074611036565b604052919050565b60006001600160401b0382111561109557611095611036565b5060051b60200190565b600082601f8301126110b057600080fd5b813560206110c56110c08361107c565b61104c565b82815260059290921b840181019181810190868411156110e457600080fd5b8286015b848110156110ff57803583529183019183016110e8565b509695505050505050565b60008060006060848603121561111f57600080fd5b833592506020808501356001600160401b038082111561113e57600080fd5b818701915087601f83011261115257600080fd5b81356111606110c08261107c565b81815260059190911b8301840190848101908a83111561117f57600080fd5b938501935b828510156111a657843561119781610dc5565b82529385019390850190611184565b9650505060408701359250808311156111be57600080fd5b50506111cc8682870161109f565b9150509250925092565b600080602083850312156111e957600080fd5b82356001600160401b038082111561120057600080fd5b818501915085601f83011261121457600080fd5b81358181111561122357600080fd5b86602082850101111561123557600080fd5b60209290920196919550909350505050565b600080600080600080600060a0888a03121561126257600080fd5b873561126d81610dc5565b9650602088013561127d81610dc5565b9550604088013561128d81610dc5565b945060608801356001600160401b03808211156112a957600080fd5b6112b58b838c01610e8e565b909650945060808a01359150808211156112ce57600080fd5b506112db8a828b01610e8e565b989b979a50959850939692959293505050565b600060208083528351808285015260005b8181101561131b578581018301518582016040015282016112ff565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161137a5761137a611352565b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b81835260006020808501808196508560051b810191508460005b8781101561142e5782840389528135601e198836030181126113e557600080fd5b870185810190356001600160401b0381111561140057600080fd5b80360382131561140f57600080fd5b61141a868284611381565b9a87019a95505050908401906001016113c4565b5091979650505050505050565b6060808252810186905260008760808301825b8981101561147e57823561146181610dc5565b6001600160a01b031682526020928301929091019060010161144e565b5083810360208501528681526001600160fb1b0387111561149e57600080fd5b8660051b91508188602083013701828103602090810160408501526114c690820185876113aa565b9998505050505050505050565b600060208083850312156114e657600080fd5b82516001600160401b038111156114fc57600080fd5b8301601f8101851361150d57600080fd5b805161151b6110c08261107c565b81815260059190911b8201830190838101908783111561153a57600080fd5b928401925b82841015610b1b5783518252928401929084019061153f565b602080825260079082015266125b9d985b1a5960ca1b604082015260600190565b600181811c9082168061158d57607f821691505b6020821081036115ad57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156107b257600081815260208120601f850160051c810160208610156115da5750805b601f850160051c820191505b818110156103c8578281556001016115e6565b6001600160401b0383111561161057611610611036565b6116248361161e8354611579565b836115b3565b6000601f84116001811461165857600085156116405750838201355b600019600387901b1c1916600186901b1783556116b2565b600083815260209020601f19861690835b828110156116895786850135825560209485019460019092019101611669565b50868210156116a65760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8181038181111561027a5761027a611352565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220b4e9a5185b96227eb8845831b25283a1bfce2b44fd0c02edcd020af77202c90064736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d05760003560e01c806301ffc9a7146100d55780631b95a227146100fd57806324d7806c146101125780632d3456701461012557806331ae450b146101385780634aec8cc51461014d5780636d73e66914610160578063715018a6146101735780638da5cb5b1461017b5780639ca7dc7a1461019b578063d9accf92146101bc578063dc83b1b9146101dd578063e0df5b6f146101f0578063e483517714610203578063e9dc637514610222578063f2fde38b14610242575b600080fd5b6100e86100e3366004610d9b565b610255565b60405190151581526020015b60405180910390f35b61011061010b366004610def565b610280565b005b6100e8610120366004610e24565b6103d0565b610110610133366004610e24565b6103ff565b61014061045d565b6040516100f49190610e41565b61011061015b366004610ed2565b61050b565b61011061016e366004610e24565b610595565b6101106105ed565b610183610601565b6040516001600160a01b0390911681526020016100f4565b6101ae6101a9366004610f6b565b610610565b6040516100f4929190610f97565b6101106101ca36600461101b565b6003805460ff1916911515919091179055565b6101106101eb36600461110a565b610756565b6101106101fe3660046111d6565b6107a5565b6100e8610211366004611247565b60035460ff16979650505050505050565b610235610230366004610f6b565b6107b7565b6040516100f491906112ee565b610110610250366004610e24565b61087a565b60006001600160e01b0319821663e9dc637560e01b148061027a575061027a826108f0565b92915050565b33610289610601565b6001600160a01b031614806102a457506102a4600133610915565b6103015760405162461bcd60e51b8152602060048201526024808201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616044820152633236b4b760e11b60648201526084015b60405180910390fd5b610312826301f4921160e61b61093a565b6103715760405162461bcd60e51b815260206004820152602a60248201527f63726561746f72206d75737420696d706c656d656e7420494552433131353543604482015269726561746f72436f726560b01b60648201526084016102f8565b604051635606467d60e11b815281151560048201526001600160a01b0383169063ac0c8cfa90602401600060405180830381600087803b1580156103b457600080fd5b505af11580156103c8573d6000803e3d6000fd5b505050505050565b6000816001600160a01b03166103e4610601565b6001600160a01b0316148061027a575061027a600183610915565b610407610956565b610412600182610915565b1561045a5760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a36104586001826109b5565b505b50565b606061046960016109ca565b6001600160401b0381111561048057610480611036565b6040519080825280602002602001820160405280156104a9578160200160208202803683370190505b50905060005b6104b960016109ca565b811015610507576104cb6001826109d4565b8282815181106104dd576104dd61133c565b6001600160a01b0390921660209283029190910190910152806104ff81611368565b9150506104af565b5090565b600554604051634637423960e11b81526001600160a01b0390911690638c6e8472906105459089908990899089908990899060040161143b565b6000604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261058c91908101906114d3565b50505050505050565b61059d610956565b6105a8600182610915565b61045a5760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a36104586001826109e0565b6105f5610956565b6105ff60006109f5565b565b6000546001600160a01b031690565b60055460609081906001600160a01b038581169116146106425760405162461bcd60e51b81526004016102f890611558565b600083815260066020526040902054156107355760008381526006602090815260408083208151815460609481028201850184529281018381529093919284928491908401828280156106be57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106a0575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561071657602002820191906000526020600020905b815481526020019060010190808311610702575b505050505081525050905080600001518160200151925092505061074f565b505060408051600080825260208201908152818301909252905b9250929050565b604080518082018252838152602080820184905260008681526006825292909220815180519293919261078c9284920190610cea565b5060208281015180516103c89260018501920190610d4b565b60046107b28284836115f9565b505050565b6005546060906001600160a01b038481169116146107e75760405162461bcd60e51b81526004016102f890611558565b600480546107f490611579565b80601f016020809104026020016040519081016040528092919081815260200182805461082090611579565b801561086d5780601f106108425761010080835404028352916020019161086d565b820191906000526020600020905b81548152906001019060200180831161085057829003601f168201915b5050505050905092915050565b610882610956565b6001600160a01b0381166108e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f8565b61045a816109f5565b60006001600160e01b03198216634e53ee3d60e11b148061027a575061027a82610a45565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600061094583610a6a565b801561093357506109338383610a9d565b3361095f610601565b6001600160a01b0316146105ff5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102f8565b6000610933836001600160a01b038416610b26565b600061027a825490565b60006109338383610c19565b6000610933836001600160a01b038416610c43565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160e01b03198216637005caad60e01b148061027a575061027a82610c92565b6000610a7d826301ffc9a760e01b610a9d565b801561027a5750610a96826001600160e01b0319610a9d565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015610b0f575060208210155b8015610b1b5750600081115b979650505050505050565b60008181526001830160205260408120548015610c0f576000610b4a6001836116b9565b8554909150600090610b5e906001906116b9565b9050818114610bc3576000866000018281548110610b7e57610b7e61133c565b9060005260206000200154905080876000018481548110610ba157610ba161133c565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610bd457610bd46116cc565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061027a565b600091505061027a565b6000826000018281548110610c3057610c3061133c565b9060005260206000200154905092915050565b6000818152600183016020526040812054610c8a5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561027a565b50600061027a565b60006001600160e01b031982166001620e90cb60e41b0319148061027a575061027a8260006001600160e01b03198216632a9f3abf60e11b148061027a57506301ffc9a760e01b6001600160e01b031983161461027a565b828054828255906000526020600020908101928215610d3f579160200282015b82811115610d3f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610d0a565b50610507929150610d86565b828054828255906000526020600020908101928215610d3f579160200282015b82811115610d3f578251825591602001919060010190610d6b565b5b808211156105075760008155600101610d87565b600060208284031215610dad57600080fd5b81356001600160e01b03198116811461093357600080fd5b6001600160a01b038116811461045a57600080fd5b80358015158114610dea57600080fd5b919050565b60008060408385031215610e0257600080fd5b8235610e0d81610dc5565b9150610e1b60208401610dda565b90509250929050565b600060208284031215610e3657600080fd5b813561093381610dc5565b6020808252825182820181905260009190848201906040850190845b81811015610e825783516001600160a01b031683529284019291840191600101610e5d565b50909695505050505050565b60008083601f840112610ea057600080fd5b5081356001600160401b03811115610eb757600080fd5b6020830191508360208260051b850101111561074f57600080fd5b60008060008060008060608789031215610eeb57600080fd5b86356001600160401b0380821115610f0257600080fd5b610f0e8a838b01610e8e565b90985096506020890135915080821115610f2757600080fd5b610f338a838b01610e8e565b90965094506040890135915080821115610f4c57600080fd5b50610f5989828a01610e8e565b979a9699509497509295939492505050565b60008060408385031215610f7e57600080fd5b8235610f8981610dc5565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b82811015610fd95781516001600160a01b031684529284019290840190600101610fb4565b5050508381038285015284518082528583019183019060005b8181101561100e57835183529284019291840191600101610ff2565b5090979650505050505050565b60006020828403121561102d57600080fd5b61093382610dda565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561107457611074611036565b604052919050565b60006001600160401b0382111561109557611095611036565b5060051b60200190565b600082601f8301126110b057600080fd5b813560206110c56110c08361107c565b61104c565b82815260059290921b840181019181810190868411156110e457600080fd5b8286015b848110156110ff57803583529183019183016110e8565b509695505050505050565b60008060006060848603121561111f57600080fd5b833592506020808501356001600160401b038082111561113e57600080fd5b818701915087601f83011261115257600080fd5b81356111606110c08261107c565b81815260059190911b8301840190848101908a83111561117f57600080fd5b938501935b828510156111a657843561119781610dc5565b82529385019390850190611184565b9650505060408701359250808311156111be57600080fd5b50506111cc8682870161109f565b9150509250925092565b600080602083850312156111e957600080fd5b82356001600160401b038082111561120057600080fd5b818501915085601f83011261121457600080fd5b81358181111561122357600080fd5b86602082850101111561123557600080fd5b60209290920196919550909350505050565b600080600080600080600060a0888a03121561126257600080fd5b873561126d81610dc5565b9650602088013561127d81610dc5565b9550604088013561128d81610dc5565b945060608801356001600160401b03808211156112a957600080fd5b6112b58b838c01610e8e565b909650945060808a01359150808211156112ce57600080fd5b506112db8a828b01610e8e565b989b979a50959850939692959293505050565b600060208083528351808285015260005b8181101561131b578581018301518582016040015282016112ff565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161137a5761137a611352565b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b81835260006020808501808196508560051b810191508460005b8781101561142e5782840389528135601e198836030181126113e557600080fd5b870185810190356001600160401b0381111561140057600080fd5b80360382131561140f57600080fd5b61141a868284611381565b9a87019a95505050908401906001016113c4565b5091979650505050505050565b6060808252810186905260008760808301825b8981101561147e57823561146181610dc5565b6001600160a01b031682526020928301929091019060010161144e565b5083810360208501528681526001600160fb1b0387111561149e57600080fd5b8660051b91508188602083013701828103602090810160408501526114c690820185876113aa565b9998505050505050505050565b600060208083850312156114e657600080fd5b82516001600160401b038111156114fc57600080fd5b8301601f8101851361150d57600080fd5b805161151b6110c08261107c565b81815260059190911b8201830190838101908783111561153a57600080fd5b928401925b82841015610b1b5783518252928401929084019061153f565b602080825260079082015266125b9d985b1a5960ca1b604082015260600190565b600181811c9082168061158d57607f821691505b6020821081036115ad57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156107b257600081815260208120601f850160051c810160208610156115da5750805b601f850160051c820191505b818110156103c8578281556001016115e6565b6001600160401b0383111561161057611610611036565b6116248361161e8354611579565b836115b3565b6000601f84116001811461165857600085156116405750838201355b600019600387901b1c1916600186901b1783556116b2565b600083815260209020601f19861690835b828110156116895786850135825560209485019460019092019101611669565b50868210156116a65760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8181038181111561027a5761027a611352565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220b4e9a5185b96227eb8845831b25283a1bfce2b44fd0c02edcd020af77202c90064736f6c63430008130033",
  "immutableReferences": {},
  "generatedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:306:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "95:209:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "141:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "150:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "153:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "143:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "143:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "143:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "116:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "125:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "112:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "112:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "137:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "108:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "108:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "105:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "166:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "185:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "179:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "179:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "170:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "258:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "267:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "270:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "260:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "260:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "260:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "217:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "228:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "243:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "248:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "239:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "239:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "252:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "235:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "235:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "224:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "224:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "214:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "214:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "207:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "207:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "204:70:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "283:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "293:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "283:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "61:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "72:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "84:6:81",
                "type": ""
              }
            ],
            "src": "14:290:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_tuple_t_address_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, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:19154:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "83:217:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "129:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "138:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "141:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "131:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "131:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "131:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "104:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "113:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "100:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "100:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "125:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "96:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "96:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "93:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "154:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "180:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "167:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "167:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "158:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "254:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "263:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "266:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "256:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "256:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "256:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "212:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "223:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "234:3:81",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "239:10:81",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "230:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "230:20:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "219:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "219:32:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "209:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "209:43:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "202:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "202:51:81"
                  },
                  "nodeType": "YulIf",
                  "src": "199:71:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "279:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "289:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "279:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "49:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "60:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "72:6:81",
                "type": ""
              }
            ],
            "src": "14:286:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "400:92:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "410:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "422:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "433:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "418:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "418:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "410:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "452:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "477:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "470:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "470:14:81"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "463:6:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "463:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "445:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "445:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "445:41:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "369:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "380:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "391:4:81",
                "type": ""
              }
            ],
            "src": "305:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "542:86:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "606:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "615:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "618:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "608:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "608:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "608:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "565:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "576:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "591:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "596:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "587:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "587:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "600:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "583:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "583:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "572:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "572:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "562:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "562:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "555:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "555:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "552:70:81"
                }
              ]
            },
            "name": "validator_revert_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "531:5:81",
                "type": ""
              }
            ],
            "src": "497:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "679:114:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "689:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "711:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "698:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "698:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "689:5:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "771:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "780:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "783:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "773:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "773:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "773:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "740:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "761:5:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "754:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "754:13:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "747:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "747:21:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "737:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "737:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "730:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "730:40:81"
                  },
                  "nodeType": "YulIf",
                  "src": "727:60:81"
                }
              ]
            },
            "name": "abi_decode_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "658:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "669:5:81",
                "type": ""
              }
            ],
            "src": "633:160:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "882:231:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "928:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "937:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "940:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "930:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "930:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "930:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "903:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "912:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "899:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "899:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "924:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "895:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "895:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "892:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "953:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "979:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "966:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "966:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "957:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1023:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "998:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "998:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "998:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1038:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1048:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1038:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1062:45:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1092:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1103:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1088:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1088:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bool",
                      "nodeType": "YulIdentifier",
                      "src": "1072:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1072:35:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "1062:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "840:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "851:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "863:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "871:6:81",
                "type": ""
              }
            ],
            "src": "798:315:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1188:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1234:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1243:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1246:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1236:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1236:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1236:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1209:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1218:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1205:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1205:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1230:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1201:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1201:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1198:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1259:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1285:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1272:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1272:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "1263:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1329:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "1304:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1304:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1304:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1344:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1354:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1344:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1154:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1165:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1177:6:81",
                "type": ""
              }
            ],
            "src": "1118:247:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1521:507:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1531:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1541:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "1535:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1552:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1570:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1581:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1566:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1566:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "1556:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1600:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1611:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1593:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1593:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1593:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1623:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "1634:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "1627:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1649:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1669:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1663:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1663:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "1653:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "1692:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1700:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1685:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1685:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1685:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1716:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1727:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1738:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1723:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1723:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "1716:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1750:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1768:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1776:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1764:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1764:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "1754:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1788:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1797:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "1792:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1856:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "1877:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "1892:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "1886:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1886:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1909:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1914:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "1905:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1905:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "1918:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "1901:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1901:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "1882:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1882:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1870:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1870:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1870:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "1935:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "1946:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1951:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1942:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1942:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1935:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "1967:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "1981:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1989:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1977:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1977:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "1967:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1818:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1821:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "1815:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1815:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1829:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1831:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1840:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1843:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1836:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1836:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1831:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "1811:3:81",
                    "statements": []
                  },
                  "src": "1807:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2011:11:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "2019:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2011:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1490:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1501:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1512:4:81",
                "type": ""
              }
            ],
            "src": "1370:658:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2117:283:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2166:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2175:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2178:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2168:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2168:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2168:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2145:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2153:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2141:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2141:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "2160:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "2137:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2137:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "2130:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2130:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2127:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2191:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2214:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2201:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2201:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "2191:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2264:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2273:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2276:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2266:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2266:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2266:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2236:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2244:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2233:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2233:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2230:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2289:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2305:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2313:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2301:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2301:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "2289:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2378:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2387:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2390:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2380:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2380:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2380:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2341:6:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2353:1:81",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "2356:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "2349:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2349:14:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2337:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2337:27:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2366:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2333:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2333:38:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "2373:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2330:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2330:47:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2327:67:81"
                }
              ]
            },
            "name": "abi_decode_array_address_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "2080:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "2088:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "2096:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "2106:6:81",
                "type": ""
              }
            ],
            "src": "2033:367:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2626:879:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2672:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2681:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2684:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2674:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2674:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2674:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2647:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2656:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2643:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2643:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2668:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2639:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2639:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2636:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2697:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2724:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2711:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2711:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "2701:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2743:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2753:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2747:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2798:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2807:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2810:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2800:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2800:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2800:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2786:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2794:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2783:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2783:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2780:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2823:96:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2891:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "2902:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2887:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2887:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "2911:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "2849:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2849:70:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "2827:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "2837:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2928:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "2938:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2928:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2955:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "2965:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "2955:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2982:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3015:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3026:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3011:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3011:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2998:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2998:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "2986:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3059:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3068:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3071:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3061:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3061:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3061:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "3045:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "3055:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3042:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3042:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3039:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3084:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3152:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "3163:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3148:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3148:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3174:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "3110:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3110:72:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "3088:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "3098:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3191:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "3201:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "3191:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3218:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "3228:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "3218:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3245:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3278:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3289:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3274:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3274:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3261:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3261:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "3249:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3322:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3331:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3334:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3324:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3324:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3324:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "3308:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "3318:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3305:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3305:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3302:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3347:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3415:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "3426:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3411:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3411:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3437:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "3373:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3373:72:81"
                  },
                  "variables": [
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "3351:8:81",
                      "type": ""
                    },
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "3361:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3454:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "3464:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "3454:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3481:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "3491:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "3481:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2552:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2563:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2575:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "2583:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "2591:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "2599:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "2607:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "2615:6:81",
                "type": ""
              }
            ],
            "src": "2405:1100:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3611:102:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "3621:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3633:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3644:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3629:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3629:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3621:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3663:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "3678:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "3694:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "3699:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "3690:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3690:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3703:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "3686:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3686:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "3674:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3674:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3656:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3656:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3656:51:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3580:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3591:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3602:4:81",
                "type": ""
              }
            ],
            "src": "3510:203:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3805:228:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3851:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3860:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3863:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3853:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3853:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3853:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3826:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3835:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "3822:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3822:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3847:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "3818:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3818:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3815:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3876:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3902:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3889:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3889:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "3880:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "3946:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "3921:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3921:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3921:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3961:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "3971:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "3961:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3985:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4012:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4023:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4008:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4008:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3995:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3995:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "3985:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3763:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "3774:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3786:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3794:6:81",
                "type": ""
              }
            ],
            "src": "3718:315:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4283:949:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4293:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4311:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4322:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4307:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4307:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "4297:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4341:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4352:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4334:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4334:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4334:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4364:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "4375:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "4368:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4390:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "4410:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "4404:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4404:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "4394:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "4433:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "4441:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4426:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4426:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4426:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4457:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4468:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4479:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4464:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4464:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "4457:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4491:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "4501:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "4495:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4514:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "4532:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4540:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4528:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4528:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "4518:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4552:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "4561:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "4556:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4620:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "4641:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "4656:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "4650:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "4650:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "4673:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "4678:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "4669:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "4669:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "4682:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "4665:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "4665:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "4646:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4646:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4634:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4634:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4634:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "4699:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "4710:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "4715:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "4706:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4706:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "4699:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "4731:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "4745:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "4753:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "4741:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4741:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "4731:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "4582:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "4585:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "4579:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4579:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "4593:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "4595:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "4604:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4607:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "4600:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4600:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "4595:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "4575:3:81",
                    "statements": []
                  },
                  "src": "4571:195:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4786:9:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "4797:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4782:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4782:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "4806:3:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4811:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4802:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4802:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4775:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4775:47:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4775:47:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4831:16:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "4844:3:81"
                  },
                  "variables": [
                    {
                      "name": "pos_1",
                      "nodeType": "YulTypedName",
                      "src": "4835:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4856:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "4878:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "4872:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4872:13:81"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nodeType": "YulTypedName",
                      "src": "4860:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "4901:3:81"
                      },
                      {
                        "name": "length_1",
                        "nodeType": "YulIdentifier",
                        "src": "4906:8:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4894:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4894:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4894:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4924:21:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "4937:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4942:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4933:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4933:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos_1",
                      "nodeType": "YulIdentifier",
                      "src": "4924:5:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4954:31:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "4974:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4982:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4970:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4970:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr_1",
                      "nodeType": "YulTypedName",
                      "src": "4958:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4994:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "5005:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i_1",
                      "nodeType": "YulTypedName",
                      "src": "4998:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5072:132:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos_1",
                              "nodeType": "YulIdentifier",
                              "src": "5093:5:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "5106:8:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "5100:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5100:15:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "5086:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5086:30:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5086:30:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5129:23:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos_1",
                              "nodeType": "YulIdentifier",
                              "src": "5142:5:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "5149:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "5138:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5138:14:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos_1",
                            "nodeType": "YulIdentifier",
                            "src": "5129:5:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5165:29:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr_1",
                              "nodeType": "YulIdentifier",
                              "src": "5181:8:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "5191:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "5177:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5177:17:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr_1",
                            "nodeType": "YulIdentifier",
                            "src": "5165:8:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i_1",
                        "nodeType": "YulIdentifier",
                        "src": "5026:3:81"
                      },
                      {
                        "name": "length_1",
                        "nodeType": "YulIdentifier",
                        "src": "5031:8:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "5023:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5023:17:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "5041:22:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "5043:18:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i_1",
                              "nodeType": "YulIdentifier",
                              "src": "5054:3:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5059:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "5050:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5050:11:81"
                        },
                        "variableNames": [
                          {
                            "name": "i_1",
                            "nodeType": "YulIdentifier",
                            "src": "5043:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "5019:3:81",
                    "statements": []
                  },
                  "src": "5015:189:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5213:13:81",
                  "value": {
                    "name": "pos_1",
                    "nodeType": "YulIdentifier",
                    "src": "5221:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5213:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4244:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "4255:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4263:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "4274:4:81",
                "type": ""
              }
            ],
            "src": "4038:1194:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5304:113:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5350:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5359:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5362:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5352:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5352:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5352:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5325:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5334:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5321:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5321:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5346:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5317:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5317:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5314:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5375:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5401:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bool",
                      "nodeType": "YulIdentifier",
                      "src": "5385:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5385:26:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "5375:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5270:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5281:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5293:6:81",
                "type": ""
              }
            ],
            "src": "5237:180:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5454:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5471:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5478:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5483:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "5474:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5474:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5464:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5464:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5464:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5511:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5514:4:81",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5504:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5504:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5504:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5535:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5538:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "5528:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5528:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5528:15:81"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "5422:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5599:230:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5609:19:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5625:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "5619:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5619:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulIdentifier",
                      "src": "5609:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5637:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "5659:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nodeType": "YulIdentifier",
                                "src": "5675:4:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5681:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5671:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5671:13:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5690:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "5686:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5686:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "5667:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5667:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5655:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5655:40:81"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "5641:10:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5770:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "5772:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5772:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5772:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "5713:10:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5725:18:81",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "5710:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5710:34:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "5749:10:81"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "5761:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "5746:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5746:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "5707:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5707:62:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5704:88:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5808:2:81",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "5812:10:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5801:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5801:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5801:22:81"
                }
              ]
            },
            "name": "allocate_memory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "5579:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "5588:6:81",
                "type": ""
              }
            ],
            "src": "5554:275:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5911:114:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5955:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "5957:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5957:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5957:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "5927:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5935:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5924:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5924:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5921:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5986:33:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6002:1:81",
                            "type": "",
                            "value": "5"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "6005:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "5998:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5998:14:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6014:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5994:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5994:25:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "5986:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_array_address_payable_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "5891:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "5902:4:81",
                "type": ""
              }
            ],
            "src": "5834:191:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6094:606:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6143:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6152:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6155:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6145:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6145:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6145:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "6122:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6130:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6118:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6118:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "6137:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "6114:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6114:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "6107:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6107:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6104:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6168:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6191:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6178:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6178:20:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "6172:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6207:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6217:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "6211:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6230:79:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "6305:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_array_address_payable_dyn",
                          "nodeType": "YulIdentifier",
                          "src": "6257:47:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6257:51:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "6241:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6241:68:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "6234:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6318:16:81",
                  "value": {
                    "name": "dst",
                    "nodeType": "YulIdentifier",
                    "src": "6331:3:81"
                  },
                  "variables": [
                    {
                      "name": "dst_1",
                      "nodeType": "YulTypedName",
                      "src": "6322:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "6350:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6355:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6343:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6343:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6343:15:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6367:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "6378:3:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6383:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6374:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6374:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "6367:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6395:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "6417:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6429:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "6432:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "6425:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6425:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6413:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6413:23:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6438:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6409:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6409:32:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "6399:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6469:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6478:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6481:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6471:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6471:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6471:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6456:6:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "6464:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6453:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6453:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6450:35:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6494:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6509:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6517:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6505:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6505:15:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "6498:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6585:86:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "6606:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "6624:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "calldataload",
                                "nodeType": "YulIdentifier",
                                "src": "6611:12:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6611:17:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "6599:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6599:30:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6599:30:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6642:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "6653:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "6658:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "6649:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6649:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "6642:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "6540:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6545:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "6537:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6537:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "6553:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "6555:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "6566:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "6571:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "6562:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6562:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "6555:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "6533:3:81",
                    "statements": []
                  },
                  "src": "6529:142:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6680:14:81",
                  "value": {
                    "name": "dst_1",
                    "nodeType": "YulIdentifier",
                    "src": "6689:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "6680:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "6068:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "6076:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "6084:5:81",
                "type": ""
              }
            ],
            "src": "6030:670:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6867:1135:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6913:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6922:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6925:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6915:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6915:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6915:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6888:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6897:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "6884:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6884:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6909:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "6880:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6880:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6877:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6938:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6961:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6948:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6948:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "6938:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6980:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6990:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "6984:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7001:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7032:9:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "7043:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7028:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7028:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7015:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7015:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "7005:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7056:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "7066:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "7060:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7111:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7120:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7123:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7113:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7113:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7113:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7099:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7107:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7096:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7096:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7093:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7136:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7150:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7161:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7146:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7146:22:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "7140:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7216:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7225:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7228:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7218:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7218:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7218:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "7195:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7199:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7191:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7191:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7206:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "7187:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7187:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "7180:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7180:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7177:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7241:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "7264:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7251:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7251:16:81"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "7245:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7276:79:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "7351:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_array_address_payable_dyn",
                          "nodeType": "YulIdentifier",
                          "src": "7303:47:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7303:51:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "7287:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7287:68:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "7280:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7364:16:81",
                  "value": {
                    "name": "dst",
                    "nodeType": "YulIdentifier",
                    "src": "7377:3:81"
                  },
                  "variables": [
                    {
                      "name": "dst_1",
                      "nodeType": "YulTypedName",
                      "src": "7368:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "7396:3:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "7401:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7389:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7389:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7389:15:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7413:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "7424:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7429:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7420:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7420:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "7413:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7441:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "7463:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7471:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_4",
                                "nodeType": "YulIdentifier",
                                "src": "7474:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "7467:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7467:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7459:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7459:19:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7480:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7455:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7455:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "7445:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7515:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7524:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7527:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7517:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7517:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7517:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7498:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7506:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7495:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7495:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7492:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7540:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "7555:2:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7559:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7551:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7551:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "7544:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7627:161:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "7641:30:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "7667:3:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "7654:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7654:17:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "7645:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "7709:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "7684:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7684:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7684:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "7735:3:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "7740:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7728:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7728:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7728:18:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7759:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "7770:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "7775:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7766:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7766:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "7759:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "7582:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7587:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "7579:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7579:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "7595:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7597:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "7608:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "7613:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7604:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7604:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "7597:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "7575:3:81",
                    "statements": []
                  },
                  "src": "7571:217:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7797:15:81",
                  "value": {
                    "name": "dst_1",
                    "nodeType": "YulIdentifier",
                    "src": "7807:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "7797:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7821:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7854:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7865:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7850:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7850:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7837:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7837:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "7825:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7898:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7907:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7910:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7900:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7900:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7900:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "7884:8:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7894:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7881:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7881:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7878:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7923:73:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7966:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "7977:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7962:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7962:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7988:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "7933:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7933:63:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "7923:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_array$_t_address_payable_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6817:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "6828:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6840:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "6848:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "6856:6:81",
                "type": ""
              }
            ],
            "src": "6705:1297:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8097:502:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8143:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8152:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8155:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8145:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8145:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8145:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8118:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8127:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "8114:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8114:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8139:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8110:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8110:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8107:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8168:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8195:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8182:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8182:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "8172:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8214:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "8224:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "8218:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8269:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8278:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8281:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8271:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8271:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8271:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "8257:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8265:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8254:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8254:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8251:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8294:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8308:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "8319:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "8304:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8304:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "8298:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8374:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8383:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8386:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8376:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8376:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8376:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "8353:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "8357:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "8349:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "8349:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8364:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "8345:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8345:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "8338:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8338:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8335:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8399:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "8426:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8413:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8413:16:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "8403:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8456:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8465:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8468:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8458:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8458:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8458:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "8444:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8452:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8441:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8441:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8438:34:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8522:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8531:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8534:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8524:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8524:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8524:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "8495:2:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "8499:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "8491:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "8491:15:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8508:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8487:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8487:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8513:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8484:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8484:37:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8481:57:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8547:21:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "8561:2:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8565:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "8557:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8557:11:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "8547:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8577:16:81",
                  "value": {
                    "name": "length",
                    "nodeType": "YulIdentifier",
                    "src": "8587:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "8577:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8055:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8066:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8078:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8086:6:81",
                "type": ""
              }
            ],
            "src": "8007:592:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8812:984:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8859:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8868:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8871:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8861:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8861:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8861:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8833:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8842:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "8829:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8829:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8854:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8825:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8825:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8822:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8884:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8910:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8897:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8897:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "8888:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "8954:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "8929:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8929:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8929:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8969:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "8979:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "8969:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8993:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9025:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9036:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9021:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9021:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9008:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9008:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "8997:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "9074:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "9049:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9049:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9049:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9091:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "9101:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9091:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9117:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9149:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9160:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9145:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9145:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9132:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9132:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nodeType": "YulTypedName",
                      "src": "9121:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nodeType": "YulIdentifier",
                        "src": "9198:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "9173:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9173:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9173:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9215:17:81",
                  "value": {
                    "name": "value_2",
                    "nodeType": "YulIdentifier",
                    "src": "9225:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "9215:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9241:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9272:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9283:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9268:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9268:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9255:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9255:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9245:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9296:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "9306:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "9300:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9351:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9360:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9363:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9353:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9353:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9353:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9339:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "9347:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9336:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9336:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9333:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9376:96:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9444:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9455:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9440:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9440:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9464:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9402:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9402:70:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "9380:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "9390:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9481:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "9491:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "9481:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9508:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "9518:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "9508:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9535:49:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9568:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9579:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9564:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9564:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9551:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9551:33:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "9539:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9613:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9622:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9625:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9615:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9615:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9615:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "9599:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "9609:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9596:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9596:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9593:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9638:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9706:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "9717:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9702:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9702:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9728:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9664:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9664:72:81"
                  },
                  "variables": [
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "9642:8:81",
                      "type": ""
                    },
                    {
                      "name": "value6_1",
                      "nodeType": "YulTypedName",
                      "src": "9652:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9745:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "9755:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "9745:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9772:18:81",
                  "value": {
                    "name": "value6_1",
                    "nodeType": "YulIdentifier",
                    "src": "9782:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value6",
                      "nodeType": "YulIdentifier",
                      "src": "9772:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8730:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8741:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8753:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8761:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8769:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "8777:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "8785:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "8793:6:81",
                "type": ""
              },
              {
                "name": "value6",
                "nodeType": "YulTypedName",
                "src": "8801:6:81",
                "type": ""
              }
            ],
            "src": "8604:1192:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9922:427:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9932:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "9942:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "9936:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9960:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "9971:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "9953:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9953:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9953:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9983:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "10003:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "9997:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9997:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "9987:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10030:9:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "10041:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10026:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10026:18:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "10046:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10019:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10019:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10019:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10062:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "10071:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "10066:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10131:90:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "headStart",
                                      "nodeType": "YulIdentifier",
                                      "src": "10160:9:81"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "10171:1:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "10156:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "10156:17:81"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "10175:2:81",
                                  "type": "",
                                  "value": "64"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "10152:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "10152:26:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "10194:6:81"
                                        },
                                        {
                                          "name": "i",
                                          "nodeType": "YulIdentifier",
                                          "src": "10202:1:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "add",
                                        "nodeType": "YulIdentifier",
                                        "src": "10190:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "10190:14:81"
                                    },
                                    {
                                      "name": "_1",
                                      "nodeType": "YulIdentifier",
                                      "src": "10206:2:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "10186:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "10186:23:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "10180:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "10180:30:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "10145:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10145:66:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10145:66:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "10092:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "10095:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "10089:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10089:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "10103:19:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "10105:15:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "10114:1:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "10117:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10110:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10110:10:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "10105:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "10085:3:81",
                    "statements": []
                  },
                  "src": "10081:140:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "10245:9:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "10256:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "10241:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "10241:22:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10265:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10237:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10237:31:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10270:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10230:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10230:42:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10230:42:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10281:62:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10297:9:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "10316:6:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "10324:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "10312:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "10312:15:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "10333:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "10329:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "10329:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "10308:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "10308:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10293:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10293:45:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10340:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "10289:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10289:54:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "10281:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9891:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9902:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "9913:4:81",
                "type": ""
              }
            ],
            "src": "9801:548:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10528:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10545:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10556:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10538:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10538:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10538:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10579:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10590:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10575:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10575:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10595:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10568:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10568:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10568:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10618:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10629:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10614:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10614:18:81"
                      },
                      {
                        "hexValue": "41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f722061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "10634:34:81",
                        "type": "",
                        "value": "AdminControl: Must be owner or a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10607:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10607:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10607:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10689:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10700:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10685:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10685:18:81"
                      },
                      {
                        "hexValue": "646d696e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "10705:6:81",
                        "type": "",
                        "value": "dmin"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10678:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10678:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10678:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10721:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10733:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10744:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "10729:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10729:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "10721:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10505:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "10519:4:81",
                "type": ""
              }
            ],
            "src": "10354:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10933:232:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10950:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10961:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10943:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10943:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10943:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10984:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10995:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10980:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10980:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11000:2:81",
                        "type": "",
                        "value": "42"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10973:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10973:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10973:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11023:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11034:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11019:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11019:18:81"
                      },
                      {
                        "hexValue": "63726561746f72206d75737420696d706c656d656e7420494552433131353543",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "11039:34:81",
                        "type": "",
                        "value": "creator must implement IERC1155C"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11012:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11012:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11012:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11094:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11105:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11090:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11090:18:81"
                      },
                      {
                        "hexValue": "726561746f72436f7265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "11110:12:81",
                        "type": "",
                        "value": "reatorCore"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11083:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11083:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11083:40:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11132:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11144:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11155:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11140:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11140:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "11132:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_3014647907c38d3a80ad4aa54f6cb0cec86575ac6288d560919ff9bf7f89a0f7__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10910:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "10924:4:81",
                "type": ""
              }
            ],
            "src": "10759:406:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11202:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11219:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11226:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11231:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "11222:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11222:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11212:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11212:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11212:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11259:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11262:4:81",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11252:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11252:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11252:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11283:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11286:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "11276:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11276:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11276:15:81"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "11170:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11334:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11351:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11358:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11363:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "11354:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11354:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11344:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11344:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11344:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11391:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11394:4:81",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11384:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11384:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11384:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11415:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11418:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "11408:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11408:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11408:15:81"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "11302:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11481:88:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11512:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "11514:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11514:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11514:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "11497:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11508:1:81",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "11504:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11504:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "11494:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11494:17:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11491:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11543:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "11554:5:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11561:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11550:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11550:13:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "11543:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "11463:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "11473:3:81",
                "type": ""
              }
            ],
            "src": "11434:135:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11641:200:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "11658:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11663:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11651:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11651:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11651:19:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "11696:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11701:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11692:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11692:14:81"
                      },
                      {
                        "name": "start",
                        "nodeType": "YulIdentifier",
                        "src": "11708:5:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11715:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "11679:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11679:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11679:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "pos",
                                "nodeType": "YulIdentifier",
                                "src": "11746:3:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "11751:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11742:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11742:16:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11760:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11738:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11738:27:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11767:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11731:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11731:38:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11731:38:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11778:57:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "11793:3:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "11806:6:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "11814:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "11802:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "11802:15:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "11823:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "11819:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "11819:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "11798:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11798:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11789:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11789:39:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11830:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11785:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11785:50:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "11778:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "start",
                "nodeType": "YulTypedName",
                "src": "11610:5:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "11617:6:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "11625:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "11633:3:81",
                "type": ""
              }
            ],
            "src": "11574:267:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11932:983:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "11949:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11954:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11942:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11942:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11942:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11970:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "11980:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "11974:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11993:31:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "12016:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12021:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "12012:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12012:12:81"
                  },
                  "variables": [
                    {
                      "name": "updated_pos",
                      "nodeType": "YulTypedName",
                      "src": "11997:11:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12033:24:81",
                  "value": {
                    "name": "updated_pos",
                    "nodeType": "YulIdentifier",
                    "src": "12046:11:81"
                  },
                  "variables": [
                    {
                      "name": "pos_1",
                      "nodeType": "YulTypedName",
                      "src": "12037:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12066:18:81",
                  "value": {
                    "name": "updated_pos",
                    "nodeType": "YulIdentifier",
                    "src": "12073:11:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "12066:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12093:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos_1",
                        "nodeType": "YulIdentifier",
                        "src": "12109:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12120:1:81",
                            "type": "",
                            "value": "5"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "12123:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "12116:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12116:14:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "12105:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12105:26:81"
                  },
                  "variables": [
                    {
                      "name": "tail",
                      "nodeType": "YulTypedName",
                      "src": "12097:4:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12140:19:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "12154:5:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "12144:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12168:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "12177:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "12172:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12236:653:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "12257:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "tail",
                                  "nodeType": "YulIdentifier",
                                  "src": "12266:4:81"
                                },
                                {
                                  "name": "pos_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "12272:5:81"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "12262:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "12262:16:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "12250:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12250:29:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12250:29:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "12292:46:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "12331:6:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "12318:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12318:20:81"
                        },
                        "variables": [
                          {
                            "name": "rel_offset_of_tail",
                            "nodeType": "YulTypedName",
                            "src": "12296:18:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "12428:16:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "12437:1:81",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "12440:1:81",
                                    "type": "",
                                    "value": "0"
                                  }
                                ],
                                "functionName": {
                                  "name": "revert",
                                  "nodeType": "YulIdentifier",
                                  "src": "12430:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "12430:12:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "12430:12:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "rel_offset_of_tail",
                                  "nodeType": "YulIdentifier",
                                  "src": "12365:18:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [],
                                          "functionName": {
                                            "name": "calldatasize",
                                            "nodeType": "YulIdentifier",
                                            "src": "12393:12:81"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "12393:14:81"
                                        },
                                        {
                                          "name": "value",
                                          "nodeType": "YulIdentifier",
                                          "src": "12409:5:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "sub",
                                        "nodeType": "YulIdentifier",
                                        "src": "12389:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "12389:26:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "12421:2:81",
                                          "type": "",
                                          "value": "30"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "not",
                                        "nodeType": "YulIdentifier",
                                        "src": "12417:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "12417:7:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "12385:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "12385:40:81"
                                }
                              ],
                              "functionName": {
                                "name": "slt",
                                "nodeType": "YulIdentifier",
                                "src": "12361:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "12361:65:81"
                            }
                          ],
                          "functionName": {
                            "name": "iszero",
                            "nodeType": "YulIdentifier",
                            "src": "12354:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12354:73:81"
                        },
                        "nodeType": "YulIf",
                        "src": "12351:93:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "12457:45:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "rel_offset_of_tail",
                              "nodeType": "YulIdentifier",
                              "src": "12476:18:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "12496:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "12472:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12472:30:81"
                        },
                        "variables": [
                          {
                            "name": "value_1",
                            "nodeType": "YulTypedName",
                            "src": "12461:7:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "12515:37:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "value_1",
                              "nodeType": "YulIdentifier",
                              "src": "12544:7:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "12531:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12531:21:81"
                        },
                        "variables": [
                          {
                            "name": "length_1",
                            "nodeType": "YulTypedName",
                            "src": "12519:8:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "12565:31:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "value_1",
                              "nodeType": "YulIdentifier",
                              "src": "12584:7:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "12593:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "12580:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12580:16:81"
                        },
                        "variables": [
                          {
                            "name": "value_2",
                            "nodeType": "YulTypedName",
                            "src": "12569:7:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "12645:16:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "12654:1:81",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "12657:1:81",
                                    "type": "",
                                    "value": "0"
                                  }
                                ],
                                "functionName": {
                                  "name": "revert",
                                  "nodeType": "YulIdentifier",
                                  "src": "12647:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "12647:12:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "12647:12:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "length_1",
                              "nodeType": "YulIdentifier",
                              "src": "12615:8:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12625:18:81",
                              "type": "",
                              "value": "0xffffffffffffffff"
                            }
                          ],
                          "functionName": {
                            "name": "gt",
                            "nodeType": "YulIdentifier",
                            "src": "12612:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12612:32:81"
                        },
                        "nodeType": "YulIf",
                        "src": "12609:52:81"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "12721:16:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "12730:1:81",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "12733:1:81",
                                    "type": "",
                                    "value": "0"
                                  }
                                ],
                                "functionName": {
                                  "name": "revert",
                                  "nodeType": "YulIdentifier",
                                  "src": "12723:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "12723:12:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "12723:12:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "value_2",
                              "nodeType": "YulIdentifier",
                              "src": "12681:7:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [],
                                  "functionName": {
                                    "name": "calldatasize",
                                    "nodeType": "YulIdentifier",
                                    "src": "12694:12:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "12694:14:81"
                                },
                                {
                                  "name": "length_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "12710:8:81"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "12690:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "12690:29:81"
                            }
                          ],
                          "functionName": {
                            "name": "sgt",
                            "nodeType": "YulIdentifier",
                            "src": "12677:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12677:43:81"
                        },
                        "nodeType": "YulIf",
                        "src": "12674:63:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "12750:59:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "value_2",
                              "nodeType": "YulIdentifier",
                              "src": "12785:7:81"
                            },
                            {
                              "name": "length_1",
                              "nodeType": "YulIdentifier",
                              "src": "12794:8:81"
                            },
                            {
                              "name": "tail",
                              "nodeType": "YulIdentifier",
                              "src": "12804:4:81"
                            }
                          ],
                          "functionName": {
                            "name": "abi_encode_string_calldata",
                            "nodeType": "YulIdentifier",
                            "src": "12758:26:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12758:51:81"
                        },
                        "variableNames": [
                          {
                            "name": "tail",
                            "nodeType": "YulIdentifier",
                            "src": "12750:4:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "12822:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "12836:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "12844:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "12832:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12832:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "12822:6:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "12860:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "12871:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "12876:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "12867:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12867:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "12860:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "12198:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "12201:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "12195:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12195:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "12209:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "12211:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "12220:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12223:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "12216:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12216:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "12211:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "12191:3:81",
                    "statements": []
                  },
                  "src": "12187:702:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12898:11:81",
                  "value": {
                    "name": "tail",
                    "nodeType": "YulIdentifier",
                    "src": "12905:4:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "12898:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_string_calldata_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "11901:5:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "11908:6:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "11916:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "11924:3:81",
                "type": ""
              }
            ],
            "src": "11846:1069:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13279:961:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13289:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13307:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13318:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13303:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13303:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "13293:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13337:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13348:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13330:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13330:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13330:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13360:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "13371:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "13364:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "13393:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "13401:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13386:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13386:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13386:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13417:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13428:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13439:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13424:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13424:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "13417:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13452:20:81",
                  "value": {
                    "name": "value0",
                    "nodeType": "YulIdentifier",
                    "src": "13466:6:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "13456:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13481:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "13490:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "13485:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13549:255:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "13563:33:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "13589:6:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "13576:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13576:20:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "13567:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "13634:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "13609:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13609:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13609:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "13660:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "13669:5:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "13684:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "13689:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "13680:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "13680:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "13693:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "13676:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "13676:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "13665:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "13665:31:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "13653:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13653:44:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13653:44:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "13710:14:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "13720:4:81",
                          "type": "",
                          "value": "0x20"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "13714:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "13737:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "13748:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "13753:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "13744:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13744:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "13737:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "13769:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "13783:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "13791:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "13779:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13779:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "13769:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "13511:1:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "13514:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "13508:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13508:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "13522:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "13524:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "13533:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13536:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "13529:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13529:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "13524:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "13504:3:81",
                    "statements": []
                  },
                  "src": "13500:304:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13824:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13835:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13820:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13820:20:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "13846:3:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13851:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "13842:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13842:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13813:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13813:49:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13813:49:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13878:3:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "13883:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13871:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13871:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13871:19:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13934:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13943:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13946:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13936:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13936:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13936:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "13905:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "13921:3:81",
                                "type": "",
                                "value": "251"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "13926:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "13917:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "13917:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13930:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "13913:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13913:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13902:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13902:31:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13899:51:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13959:28:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13977:1:81",
                        "type": "",
                        "value": "5"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "13980:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nodeType": "YulIdentifier",
                      "src": "13973:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13973:14:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "13963:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "14013:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14018:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14009:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14009:14:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "14025:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "14033:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "13996:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13996:44:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13996:44:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14049:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "14063:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "14068:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14059:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14059:16:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "14053:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14095:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14106:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14091:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14091:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "14119:2:81"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "14123:9:81"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "14115:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "14115:18:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14135:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14111:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14111:29:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14084:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14084:57:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14084:57:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14150:84:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "14204:6:81"
                      },
                      {
                        "name": "value5",
                        "nodeType": "YulIdentifier",
                        "src": "14212:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "14224:2:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14228:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14220:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14220:13:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_string_calldata_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "14158:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14158:76:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "14150:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13208:9:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "13219:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "13227:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "13235:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "13243:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "13251:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13259:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "13270:4:81",
                "type": ""
              }
            ],
            "src": "12920:1320:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14351:783:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14361:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "14371:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "14365:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14418:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14427:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14430:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14420:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14420:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14420:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14393:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14402:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "14389:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14389:23:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "14414:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "14385:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14385:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14382:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14443:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14463:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "14457:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14457:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "14447:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14516:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14525:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14528:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14518:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14518:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14518:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "14488:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14496:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14485:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14485:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14482:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14541:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14555:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "14566:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14551:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14551:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "14545:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14621:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14630:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14633:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14623:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14623:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14623:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "14600:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "14604:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "14596:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "14596:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14611:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "14592:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14592:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "14585:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14585:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14582:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14646:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "14662:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "14656:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14656:9:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "14650:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14674:79:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "14749:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_array_address_payable_dyn",
                          "nodeType": "YulIdentifier",
                          "src": "14701:47:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14701:51:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "14685:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14685:68:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "14678:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14762:16:81",
                  "value": {
                    "name": "dst",
                    "nodeType": "YulIdentifier",
                    "src": "14775:3:81"
                  },
                  "variables": [
                    {
                      "name": "dst_1",
                      "nodeType": "YulTypedName",
                      "src": "14766:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "14794:3:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "14799:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14787:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14787:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14787:15:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14811:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "14822:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "14827:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14818:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14818:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "14811:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14839:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "14861:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "14869:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "14872:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "14865:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "14865:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14857:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14857:19:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "14878:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14853:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14853:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "14843:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14913:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14922:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14925:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14915:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14915:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14915:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14896:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14904:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14893:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14893:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14890:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14938:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "14953:2:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "14957:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14949:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14949:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "14942:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15025:79:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "15046:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "15057:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "15051:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "15051:10:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "15039:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15039:23:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15039:23:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "15075:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "15086:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "15091:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "15082:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15082:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "15075:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "14980:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14985:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "14977:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14977:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "14993:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "14995:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "15006:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "15011:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "15002:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15002:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "14995:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "14973:3:81",
                    "statements": []
                  },
                  "src": "14969:135:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15113:15:81",
                  "value": {
                    "name": "dst_1",
                    "nodeType": "YulIdentifier",
                    "src": "15123:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "15113:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "14317:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "14328:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "14340:6:81",
                "type": ""
              }
            ],
            "src": "14245:889:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15313:156:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15330:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15341:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15323:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15323:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15323:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15364:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15375:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15360:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15360:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15380:1:81",
                        "type": "",
                        "value": "7"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15353:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15353:29:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15353:29:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15402:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15413:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15398:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15398:18:81"
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "15418:9:81",
                        "type": "",
                        "value": "Invalid"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15391:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15391:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15391:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15437:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15449:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15460:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "15445:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15445:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "15437:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "15290:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "15304:4:81",
                "type": ""
              }
            ],
            "src": "15139:330:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15529:325:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "15539:22:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15553:1:81",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "15556:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nodeType": "YulIdentifier",
                      "src": "15549:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15549:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "15539:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15570:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "15600:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15606:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "15596:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15596:12:81"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nodeType": "YulTypedName",
                      "src": "15574:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15647:31:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "15649:27:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nodeType": "YulIdentifier",
                              "src": "15663:6:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15671:4:81",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nodeType": "YulIdentifier",
                            "src": "15659:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15659:17:81"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "15649:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "15627:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "15620:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15620:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15617:61:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15737:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15758:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "15765:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "15770:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "15761:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "15761:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "15751:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15751:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15751:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15802:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15805:4:81",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "15795:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15795:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15795:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15830:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15833:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15823:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15823:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15823:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "15693:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "15716:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15724:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "15713:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15713:14:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "15690:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15690:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15687:161:81"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "15509:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "15518:6:81",
                "type": ""
              }
            ],
            "src": "15474:380:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15915:65:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15932:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "ptr",
                        "nodeType": "YulIdentifier",
                        "src": "15935:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15925:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15925:14:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15925:14:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15948:26:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15966:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15969:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "keccak256",
                      "nodeType": "YulIdentifier",
                      "src": "15956:9:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15956:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "data",
                      "nodeType": "YulIdentifier",
                      "src": "15948:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_dataslot_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "ptr",
                "nodeType": "YulTypedName",
                "src": "15898:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "15906:4:81",
                "type": ""
              }
            ],
            "src": "15859:121:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16066:464:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16099:425:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "16113:11:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "16123:1:81",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "16117:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "16144:2:81"
                            },
                            {
                              "name": "array",
                              "nodeType": "YulIdentifier",
                              "src": "16148:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "16137:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16137:17:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16137:17:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "16167:31:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "16189:2:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16193:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "16179:9:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16179:19:81"
                        },
                        "variables": [
                          {
                            "name": "data",
                            "nodeType": "YulTypedName",
                            "src": "16171:4:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "16211:57:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "16234:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "16244:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "startIndex",
                                      "nodeType": "YulIdentifier",
                                      "src": "16251:10:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "16263:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "16247:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "16247:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "16240:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "16240:27:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "16230:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16230:38:81"
                        },
                        "variables": [
                          {
                            "name": "deleteStart",
                            "nodeType": "YulTypedName",
                            "src": "16215:11:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "16305:23:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "16307:19:81",
                              "value": {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "16322:4:81"
                              },
                              "variableNames": [
                                {
                                  "name": "deleteStart",
                                  "nodeType": "YulIdentifier",
                                  "src": "16307:11:81"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "startIndex",
                              "nodeType": "YulIdentifier",
                              "src": "16287:10:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16299:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "16284:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16284:20:81"
                        },
                        "nodeType": "YulIf",
                        "src": "16281:47:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "16341:41:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "16355:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "16365:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "16372:3:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "16377:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "16368:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "16368:12:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "16361:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "16361:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "16351:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16351:31:81"
                        },
                        "variables": [
                          {
                            "name": "_2",
                            "nodeType": "YulTypedName",
                            "src": "16345:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "16395:24:81",
                        "value": {
                          "name": "deleteStart",
                          "nodeType": "YulIdentifier",
                          "src": "16408:11:81"
                        },
                        "variables": [
                          {
                            "name": "start",
                            "nodeType": "YulTypedName",
                            "src": "16399:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "16493:21:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "16502:5:81"
                                  },
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "16509:2:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "16495:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "16495:17:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "16495:17:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "start",
                              "nodeType": "YulIdentifier",
                              "src": "16443:5:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "16450:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "16440:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16440:13:81"
                        },
                        "nodeType": "YulForLoop",
                        "post": {
                          "nodeType": "YulBlock",
                          "src": "16454:26:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "16456:22:81",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "16469:5:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "16476:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "16465:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "16465:13:81"
                              },
                              "variableNames": [
                                {
                                  "name": "start",
                                  "nodeType": "YulIdentifier",
                                  "src": "16456:5:81"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nodeType": "YulBlock",
                          "src": "16436:3:81",
                          "statements": []
                        },
                        "src": "16432:82:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "16082:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16087:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16079:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16079:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16076:448:81"
                }
              ]
            },
            "name": "clean_up_bytearray_end_slots_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "16038:5:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "16045:3:81",
                "type": ""
              },
              {
                "name": "startIndex",
                "nodeType": "YulTypedName",
                "src": "16050:10:81",
                "type": ""
              }
            ],
            "src": "15985:545:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16620:81:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "16630:65:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "data",
                            "nodeType": "YulIdentifier",
                            "src": "16645:4:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "16663:1:81",
                                        "type": "",
                                        "value": "3"
                                      },
                                      {
                                        "name": "len",
                                        "nodeType": "YulIdentifier",
                                        "src": "16666:3:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "16659:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "16659:11:81"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "16676:1:81",
                                        "type": "",
                                        "value": "0"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nodeType": "YulIdentifier",
                                      "src": "16672:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "16672:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shr",
                                  "nodeType": "YulIdentifier",
                                  "src": "16655:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "16655:24:81"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "16651:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "16651:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "16641:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16641:40:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16687:1:81",
                            "type": "",
                            "value": "1"
                          },
                          {
                            "name": "len",
                            "nodeType": "YulIdentifier",
                            "src": "16690:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "16683:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16683:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "16638:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16638:57:81"
                  },
                  "variableNames": [
                    {
                      "name": "used",
                      "nodeType": "YulIdentifier",
                      "src": "16630:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "extract_used_part_and_set_length_of_short_byte_array",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "16597:4:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "16603:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "used",
                "nodeType": "YulTypedName",
                "src": "16611:4:81",
                "type": ""
              }
            ],
            "src": "16535:166:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16809:1103:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16850:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "16852:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16852:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16852:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "16825:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16830:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16822:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16822:27:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16819:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "16925:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "16963:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "16957:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "16957:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "16931:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16931:38:81"
                      },
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "16971:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "16881:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16881:94:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16881:94:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16984:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "17001:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "16988:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "17045:609:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "17059:32:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "17078:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "17087:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "17083:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "17083:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "17074:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "17074:17:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "17063:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "17104:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "17148:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "17118:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "17118:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "17108:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "17166:18:81",
                            "value": {
                              "name": "srcOffset",
                              "nodeType": "YulIdentifier",
                              "src": "17175:9:81"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "17170:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "17254:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "17279:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "17304:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "17309:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "17300:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "17300:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "calldataload",
                                          "nodeType": "YulIdentifier",
                                          "src": "17287:12:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "17287:33:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "17272:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "17272:49:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "17272:49:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "17338:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "17352:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "17360:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "17348:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "17348:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "17338:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "17379:33:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "17396:9:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "17407:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "17392:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "17392:20:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "17379:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "17208:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "17211:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "17205:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "17205:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "17220:21:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "17222:17:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "17231:1:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "17234:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "17227:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "17227:12:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "17222:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "17201:3:81",
                              "statements": []
                            },
                            "src": "17197:229:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "17471:127:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "17496:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "name": "src",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "17525:3:81"
                                                  },
                                                  {
                                                    "name": "srcOffset",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "17530:9:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "add",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "17521:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "17521:19:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "calldataload",
                                              "nodeType": "YulIdentifier",
                                              "src": "17508:12:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "17508:33:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "17559:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "len",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "17562:3:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "17555:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "17555:11:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "17568:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "17551:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "17551:21:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "17578:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "17574:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "17574:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "17547:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "17547:34:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "17543:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "17543:39:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "17504:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "17504:79:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "17489:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "17489:95:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "17489:95:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "17445:7:81"
                                },
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "17454:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "17442:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "17442:16:81"
                            },
                            "nodeType": "YulIf",
                            "src": "17439:159:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "17618:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "17632:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "len",
                                          "nodeType": "YulIdentifier",
                                          "src": "17635:3:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "17628:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "17628:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "17641:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "17624:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "17624:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "17611:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "17611:33:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "17611:33:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "17038:616:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17043:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "17671:235:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "17685:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17698:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "17689:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "17731:74:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "17749:42:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "17775:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "17780:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "17771:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "17771:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "calldataload",
                                      "nodeType": "YulIdentifier",
                                      "src": "17758:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "17758:33:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "17749:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "len",
                              "nodeType": "YulIdentifier",
                              "src": "17715:3:81"
                            },
                            "nodeType": "YulIf",
                            "src": "17712:93:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "17825:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "17884:5:81"
                                    },
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "17891:3:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "17831:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "17831:64:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "17818:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "17818:78:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "17818:78:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "17663:243:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "17021:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17026:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "17018:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17018:11:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "17011:895:81"
                }
              ]
            },
            "name": "copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nodeType": "YulTypedName",
                "src": "16789:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "16795:3:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "16800:3:81",
                "type": ""
              }
            ],
            "src": "16706:1206:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18091:228:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18108:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18119:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18101:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18101:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18101:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18142:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18153:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18138:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18138:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18158:2:81",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18131:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18131:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18131:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18181:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18192:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18177:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18177:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "18197:34:81",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18170:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18170:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18170:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18252:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18263:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18248:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18248:18:81"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "18268:8:81",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18241:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18241:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18241:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18286:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18298:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18309:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "18294:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18294:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "18286:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18068:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "18082:4:81",
                "type": ""
              }
            ],
            "src": "17917:402:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18498:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18515:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18526:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18508:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18508:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18508:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18549:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18560:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18545:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18545:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18565:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18538:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18538:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18538:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18588:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18599:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18584:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18584:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "18604:34:81",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18577:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18577:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18577:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18648:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18660:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18671:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "18656:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18656:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "18648:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18475:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "18489:4:81",
                "type": ""
              }
            ],
            "src": "18324:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18784:103:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "18794:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18806:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18817:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "18802:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18802:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "18794:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18836:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "18851:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "18863:3:81",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "18868:10:81",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "18859:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "18859:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "18847:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18847:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18829:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18829:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18829:52:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18753:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18764:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "18775:4:81",
                "type": ""
              }
            ],
            "src": "18685:202:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18941:79:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "18951:17:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "18963:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "18966:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "18959:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18959:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "18951:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18992:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "18994:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18994:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18994:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "18983:4:81"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "18989:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "18980:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18980:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18977:37:81"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "18923:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "18926:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "18932:4:81",
                "type": ""
              }
            ],
            "src": "18892:128:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19057:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19074:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19081:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19086:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "19077:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19077:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19067:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19067:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19067:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19114:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19117:4:81",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19107:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19107:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19107:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19138:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19141:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "19131:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19131:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19131:15:81"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "19025:127:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\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 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_bool(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_bool(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_bool(add(headStart, 32))\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_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_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_addresst_uint256(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 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 64)\n        mstore(headStart, 64)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 96)\n        let _1 := 0x20\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, _1), sub(pos, headStart))\n        let pos_1 := pos\n        let length_1 := mload(value1)\n        mstore(pos, length_1)\n        pos_1 := add(pos, _1)\n        let srcPtr_1 := add(value1, _1)\n        let i_1 := 0\n        for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n        {\n            mstore(pos_1, mload(srcPtr_1))\n            pos_1 := add(pos_1, _1)\n            srcPtr_1 := add(srcPtr_1, _1)\n        }\n        tail := pos_1\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_bool(headStart)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\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 array_allocation_size_array_address_payable_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_payable_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_uint256t_array$_t_address_payable_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let _1 := 32\n        let offset := calldataload(add(headStart, _1))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := calldataload(_3)\n        let dst := allocate_memory(array_allocation_size_array_address_payable_dyn(_4))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _1)\n        let srcEnd := add(add(_3, shl(5, _4)), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_3, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _1)\n        }\n        value1 := dst_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _2) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n        value0 := add(_2, 32)\n        value1 := length\n    }\n    function abi_decode_tuple_t_addresst_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := calldataload(add(headStart, 64))\n        validator_revert_address(value_2)\n        value2 := value_2\n        let offset := calldataload(add(headStart, 96))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n        let offset_1 := calldataload(add(headStart, 128))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value5_1, value6_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value5 := value5_1\n        value6 := value6_1\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let length := mload(value0)\n        mstore(add(headStart, _1), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n        }\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"AdminControl: Must be owner or a\")\n        mstore(add(headStart, 96), \"dmin\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3014647907c38d3a80ad4aa54f6cb0cec86575ac6288d560919ff9bf7f89a0f7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"creator must implement IERC1155C\")\n        mstore(add(headStart, 96), \"reatorCore\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\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 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_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, 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_array_string_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        let _1 := 0x20\n        let updated_pos := add(pos, _1)\n        let pos_1 := updated_pos\n        pos := updated_pos\n        let tail := add(pos_1, shl(5, length))\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, sub(tail, pos_1))\n            let rel_offset_of_tail := calldataload(srcPtr)\n            if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value), not(30)))) { revert(0, 0) }\n            let value_1 := add(rel_offset_of_tail, value)\n            let length_1 := calldataload(value_1)\n            let value_2 := add(value_1, _1)\n            if gt(length_1, 0xffffffffffffffff) { revert(0, 0) }\n            if sgt(value_2, sub(calldatasize(), length_1)) { revert(0, 0) }\n            tail := abi_encode_string_calldata(value_2, length_1, tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 96)\n        mstore(headStart, 96)\n        let pos := tail_1\n        mstore(tail_1, value1)\n        pos := add(headStart, 128)\n        let srcPtr := value0\n        let i := 0\n        for { } lt(i, value1) { i := add(i, 1) }\n        {\n            let value := calldataload(srcPtr)\n            validator_revert_address(value)\n            mstore(pos, and(value, sub(shl(160, 1), 1)))\n            let _1 := 0x20\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, 0x20), sub(pos, headStart))\n        mstore(pos, value3)\n        if gt(value3, sub(shl(251, 1), 1)) { revert(0, 0) }\n        let length := shl(5, value3)\n        calldatacopy(add(pos, 0x20), value2, length)\n        let _2 := add(pos, length)\n        mstore(add(headStart, 64), add(sub(_2, headStart), 0x20))\n        tail := abi_encode_array_string_calldata_dyn_calldata(value4, value5, add(_2, 0x20))\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        let dst := allocate_memory(array_allocation_size_array_address_payable_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _1)\n        let srcEnd := add(add(_2, shl(5, _3)), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _1)\n        }\n        value0 := dst_1\n    }\n    function abi_encode_tuple_t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 7)\n        mstore(add(headStart, 64), \"Invalid\")\n        tail := add(headStart, 96)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\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 checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "284:2193:60:-:0;;;649:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:7;719:10:17;936:18:7;:32::i;:::-;688:8:60;:18;;-1:-1:-1;;;;;;688:18:60;-1:-1:-1;;;;;688:18:60;;;;;;;;;;284:2193;;2433:187:7;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:7;;;-1:-1:-1;;;;;;2541:17:7;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:290:81:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:81;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:81:o;:::-;284:2193:60;;;;;;",
  "deployedSourceMap": "284:2193:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;780:301;;;;;;:::i;:::-;;:::i;:::-;;;470:14:81;;463:22;445:41;;433:2;418:18;780:301:60;;;;;;;;1005:317:44;;;;;;:::i;:::-;;:::i;:::-;;1980:137:0;;;;;;:::i;:::-;;:::i;1712:205::-;;;;;;:::i;:::-;;:::i;1111:261::-;;;:::i;:::-;;;;;;;:::i;1087:187:60:-;;;;;;:::i;:::-;;:::i;1440:205:0:-;;;;;;:::i;:::-;;:::i;1831:101:7:-;;;:::i;1201:85::-;;;:::i;:::-;;;-1:-1:-1;;;;;3674:32:81;;;3656:51;;3644:2;3629:18;1201:85:7;3510:203:81;2023:452:60;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1280:90::-;;;;;;:::i;:::-;1338:15;:25;;-1:-1:-1;;1338:25:60;;;;;;;;;;1280:90;1832:185;;;;;;:::i;:::-;;:::i;1376:81::-;;;;;;:::i;:::-;;:::i;1463:176::-;;;;;;:::i;:::-;1617:15;;;;1463:176;;;;;;;;;;1645:181;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2081:198:7:-;;;;;;:::i;:::-;;:::i;780:301:60:-;941:4;-1:-1:-1;;;;;;964:58:60;;-1:-1:-1;;;964:58:60;;:110;;;1038:36;1062:11;1038:23;:36::i;:::-;957:117;780:301;-1:-1:-1;;780:301:60:o;1005:317:44:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;10556:2:81;923:102:0;;;10538:21:81;10595:2;10575:18;;;10568:30;10634:34;10614:18;;;10607:62;-1:-1:-1;;;10685:18:81;;;10678:34;10729:19;;923:102:0;;;;;;;;;1114:79:44::1;1146:7;-1:-1:-1::0;;;1114:31:44::1;:79::i;:::-;1106:134;;;::::0;-1:-1:-1;;;1106:134:44;;10961:2:81;1106:134:44::1;::::0;::::1;10943:21:81::0;11000:2;10980:18;;;10973:30;11039:34;11019:18;;;11012:62;-1:-1:-1;;;11090:18:81;;;11083:40;11140:19;;1106:134:44::1;10759:406:81::0;1106:134:44::1;1250:65;::::0;-1:-1:-1;;;1250:65:44;;470:14:81;;463:22;1250:65:44::1;::::0;::::1;445:41:81::0;-1:-1:-1;;;;;1250:56:44;::::1;::::0;::::1;::::0;418:18:81;;1250:65:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1005:317:::0;;:::o;1980:137:0:-;2042:4;2077:5;-1:-1:-1;;;;;2066:16:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2066:16:0;;:43;;;-1:-1:-1;2086:23:0;:7;2103:5;2086:16;:23::i;1712:205::-;1094:13:7;:11;:13::i;:::-;1790:23:0::1;:7;1807:5:::0;1790:16:::1;:23::i;:::-;1786:125;;;1834:31;::::0;1854:10:::1;::::0;-1:-1:-1;;;;;1834:31:0;::::1;::::0;::::1;::::0;;;::::1;1879:21;:7;1894:5:::0;1879:14:::1;:21::i;:::-;;1786:125;1712:205:::0;:::o;1111:261::-;1164:23;1222:16;:7;:14;:16::i;:::-;-1:-1:-1;;;;;1208:31:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1208:31:0;;1199:40;;1254:6;1249:94;1270:16;:7;:14;:16::i;:::-;1266:1;:20;1249:94;;;1319:13;:7;1330:1;1319:10;:13::i;:::-;1307:6;1314:1;1307:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1307:25:0;;;:9;;;;;;;;;;;:25;1288:3;;;;:::i;:::-;;;;1249:94;;;;1111:261;:::o;1087:187:60:-;1222:8;;1202:65;;-1:-1:-1;;;1202:65:60;;-1:-1:-1;;;;;1222:8:60;;;;1202:46;;:65;;1249:2;;;;1253:7;;;;1262:4;;;;1202:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1202:65:60;;;;;;;;;;;;:::i;:::-;;1087:187;;;;;;:::o;1440:205:0:-;1094:13:7;:11;:13::i;:::-;1520:23:0::1;:7;1537:5:::0;1520:16:::1;:23::i;:::-;1515:124;;1564:32;::::0;1585:10:::1;::::0;-1:-1:-1;;;;;1564:32:0;::::1;::::0;::::1;::::0;;;::::1;1610:18;:7;1622:5:::0;1610:11:::1;:18::i;1831:101:7:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1201:85::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:7;;1201:85::o;2023:452:60:-;2184:8;;2111:24;;;;-1:-1:-1;;;;;2173:19:60;;;2184:8;;2173:19;2165:39;;;;-1:-1:-1;;;2165:39:60;;;;;;;:::i;:::-;2261:1;2219:21;;;:12;:21;;;;;:39;:43;2215:254;;2278:23;2304:21;;;:12;:21;;;;;;;;2278:47;;;;;;;;;;;;;;;;;;;;;;2304:21;;2278:47;;2304:21;;2278:47;;;2304:21;2278:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2278:47:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2347:4;:15;;;2364:4;:11;;;2339:37;;;;;;;2215:254;-1:-1:-1;;2415:24:60;;;2437:1;2415:24;;;;;;2441:16;;;;;;;;;2415:24;2215:254;2023:452;;;;;:::o;1832:185::-;1980:30;;;;;;;;;;;;;;;;;;-1:-1:-1;1956:21:60;;;:12;:21;;;;;;:54;;;;1980:30;;1956:21;;:54;;:21;;:54;;;:::i;:::-;-1:-1:-1;1956:54:60;;;;;;;;;;;;;;;;:::i;1376:81::-;1435:9;:15;1447:3;;1435:9;:15;:::i;:::-;;1376:81;;:::o;1645:181::-;1773:8;;1729:13;;-1:-1:-1;;;;;1762:19:60;;;1773:8;;1762:19;1754:39;;;;-1:-1:-1;;;1754:39:60;;;;;;;:::i;:::-;1810:9;1803:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1645:181;;;;:::o;2081:198:7:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:7;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:7;;18119:2:81;2161:73:7::1;::::0;::::1;18101:21:81::0;18158:2;18138:18;;;18131:30;18197:34;18177:18;;;18170:62;-1:-1:-1;;;18248:18:81;;;18241:36;18294:19;;2161:73:7::1;17917:402:81::0;2161:73:7::1;2244:28;2263:8;2244:18;:28::i;628:267:43:-:0;754:4;-1:-1:-1;;;;;;777:59:43;;-1:-1:-1;;;777:59:43;;:111;;;852:36;876:11;852:23;:36::i;8852:165:23:-;-1:-1:-1;;;;;8985:23:23;;8932:4;4343:19;;;:12;;;:19;;;;;;:24;;8955:55;8948:62;8852:165;-1:-1:-1;;;8852:165:23:o;1349:282:20:-;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;1359:130:7:-;719:10:17;1422:7:7;:5;:7::i;:::-;-1:-1:-1;;;;;1422:23:7;;1414:68;;;;-1:-1:-1;;;1414:68:7;;18526:2:81;1414:68:7;;;18508:21:81;;;18545:18;;;18538:30;18604:34;18584:18;;;18577:62;18656:18;;1414:68:7;18324:356:81;8615:156:23;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:23;;8711:7;:53::i;9098:115::-;9161:7;9187:19;9195:3;4537:18;;4455:107;9555:156;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;8297:150::-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:23;;8390:4;:50::i;2433:187:7:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:7;;;-1:-1:-1;;;;;;2541:17:7;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;601:216:41:-;694:4;-1:-1:-1;;;;;;717:41:41;;-1:-1:-1;;;717:41:41;;:93;;;774:36;798:11;774:23;:36::i;704:427:20:-;768:4;975:68;1008:7;-1:-1:-1;;;975:32:20;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:20;1093:7;-1:-1:-1;;;;;;1060:32:20;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:20:o;4262:647::-;4433:71;;;-1:-1:-1;;;;;;18847:33:81;;4433:71:20;;;;18829:52:81;;;;4433:71:20;;;;;;;;;;18802:18:81;;;;4433:71:20;;;;;;;;;-1:-1:-1;;;;;4433:71:20;-1:-1:-1;;;4433:71:20;;;4712:20;;4364:4;;4433:71;4364:4;;;;;;4433:71;4364:4;;4712:20;4677:7;4670:5;4659:86;4648:97;;4772:16;4758:30;;4822:4;4816:11;4801:26;;4854:7;:29;;;;;4879:4;4865:10;:18;;4854:29;:48;;;;;4901:1;4887:11;:15;4854:48;4847:55;4262:647;-1:-1:-1;;;;;;;4262:647:20:o;2778:1388:23:-;2844:4;2981:19;;;:12;;;:19;;;;;;3015:15;;3011:1149;;3384:21;3408:14;3421:1;3408:10;:14;:::i;:::-;3456:18;;3384:38;;-1:-1:-1;3436:17:23;;3456:22;;3477:1;;3456:22;:::i;:::-;3436:42;;3510:13;3497:9;:26;3493:398;;3543:17;3563:3;:11;;3575:9;3563:22;;;;;;;;:::i;:::-;;;;;;;;;3543:42;;3714:9;3685:3;:11;;3697:13;3685:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3797:23;;;:12;;;:23;;;;;:36;;;3493:398;3969:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4061:3;:12;;:19;4074:5;4061:19;;;;;;;;;;;4054:26;;;4102:4;4095:11;;;;;;;3011:1149;4144:5;4137:12;;;;;4904:118;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;2206:404::-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:23;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:23;2581:12;;644:262:44;752:4;-1:-1:-1;;;;;;775:72:44;;-1:-1:-1;;;;;;775:72:44;;:124;;;863:36;887:11;667:4:0;-1:-1:-1;;;;;;690:46:0;;-1:-1:-1;;;690:46:0;;:98;;-1:-1:-1;;;;;;;;;;937:40:19;;;752:36:0;829:155:19;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:286:81;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:81;;209:43;;199:71;;266:1;263;256:12;497:131;-1:-1:-1;;;;;572:31:81;;562:42;;552:70;;618:1;615;608:12;633:160;698:20;;754:13;;747:21;737:32;;727:60;;783:1;780;773:12;727:60;633:160;;;:::o;798:315::-;863:6;871;924:2;912:9;903:7;899:23;895:32;892:52;;;940:1;937;930:12;892:52;979:9;966:23;998:31;1023:5;998:31;:::i;:::-;1048:5;-1:-1:-1;1072:35:81;1103:2;1088:18;;1072:35;:::i;:::-;1062:45;;798:315;;;;;:::o;1118:247::-;1177:6;1230:2;1218:9;1209:7;1205:23;1201:32;1198:52;;;1246:1;1243;1236:12;1198:52;1285:9;1272:23;1304:31;1329:5;1304:31;:::i;1370:658::-;1541:2;1593:21;;;1663:13;;1566:18;;;1685:22;;;1512:4;;1541:2;1764:15;;;;1738:2;1723:18;;;1512:4;1807:195;1821:6;1818:1;1815:13;1807:195;;;1886:13;;-1:-1:-1;;;;;1882:39:81;1870:52;;1977:15;;;;1942:12;;;;1918:1;1836:9;1807:195;;;-1:-1:-1;2019:3:81;;1370:658;-1:-1:-1;;;;;;1370:658:81:o;2033:367::-;2096:8;2106:6;2160:3;2153:4;2145:6;2141:17;2137:27;2127:55;;2178:1;2175;2168:12;2127:55;-1:-1:-1;2201:20:81;;-1:-1:-1;;;;;2233:30:81;;2230:50;;;2276:1;2273;2266:12;2230:50;2313:4;2305:6;2301:17;2289:29;;2373:3;2366:4;2356:6;2353:1;2349:14;2341:6;2337:27;2333:38;2330:47;2327:67;;;2390:1;2387;2380:12;2405:1100;2575:6;2583;2591;2599;2607;2615;2668:2;2656:9;2647:7;2643:23;2639:32;2636:52;;;2684:1;2681;2674:12;2636:52;2724:9;2711:23;-1:-1:-1;;;;;2794:2:81;2786:6;2783:14;2780:34;;;2810:1;2807;2800:12;2780:34;2849:70;2911:7;2902:6;2891:9;2887:22;2849:70;:::i;:::-;2938:8;;-1:-1:-1;2823:96:81;-1:-1:-1;3026:2:81;3011:18;;2998:32;;-1:-1:-1;3042:16:81;;;3039:36;;;3071:1;3068;3061:12;3039:36;3110:72;3174:7;3163:8;3152:9;3148:24;3110:72;:::i;:::-;3201:8;;-1:-1:-1;3084:98:81;-1:-1:-1;3289:2:81;3274:18;;3261:32;;-1:-1:-1;3305:16:81;;;3302:36;;;3334:1;3331;3324:12;3302:36;;3373:72;3437:7;3426:8;3415:9;3411:24;3373:72;:::i;:::-;2405:1100;;;;-1:-1:-1;2405:1100:81;;-1:-1:-1;2405:1100:81;;3464:8;;2405:1100;-1:-1:-1;;;2405:1100:81:o;3718:315::-;3786:6;3794;3847:2;3835:9;3826:7;3822:23;3818:32;3815:52;;;3863:1;3860;3853:12;3815:52;3902:9;3889:23;3921:31;3946:5;3921:31;:::i;:::-;3971:5;4023:2;4008:18;;;;3995:32;;-1:-1:-1;;;3718:315:81:o;4038:1194::-;4322:2;4334:21;;;4404:13;;4307:18;;;4426:22;;;4274:4;;4501;;4479:2;4464:18;;;4528:15;;;4274:4;4571:195;4585:6;4582:1;4579:13;4571:195;;;4650:13;;-1:-1:-1;;;;;4646:39:81;4634:52;;4706:12;;;;4741:15;;;;4682:1;4600:9;4571:195;;;-1:-1:-1;;;4802:19:81;;;4782:18;;;4775:47;4872:13;;4894:21;;;4970:15;;;;4933:12;;;5005:1;5015:189;5031:8;5026:3;5023:17;5015:189;;;5100:15;;5086:30;;5177:17;;;;5138:14;;;;5059:1;5050:11;5015:189;;;-1:-1:-1;5221:5:81;;4038:1194;-1:-1:-1;;;;;;;4038:1194:81:o;5237:180::-;5293:6;5346:2;5334:9;5325:7;5321:23;5317:32;5314:52;;;5362:1;5359;5352:12;5314:52;5385:26;5401:9;5385:26;:::i;5422:127::-;5483:10;5478:3;5474:20;5471:1;5464:31;5514:4;5511:1;5504:15;5538:4;5535:1;5528:15;5554:275;5625:2;5619:9;5690:2;5671:13;;-1:-1:-1;;5667:27:81;5655:40;;-1:-1:-1;;;;;5710:34:81;;5746:22;;;5707:62;5704:88;;;5772:18;;:::i;:::-;5808:2;5801:22;5554:275;;-1:-1:-1;5554:275:81:o;5834:191::-;5902:4;-1:-1:-1;;;;;5927:6:81;5924:30;5921:56;;;5957:18;;:::i;:::-;-1:-1:-1;6002:1:81;5998:14;6014:4;5994:25;;5834:191::o;6030:670::-;6084:5;6137:3;6130:4;6122:6;6118:17;6114:27;6104:55;;6155:1;6152;6145:12;6104:55;6191:6;6178:20;6217:4;6241:68;6257:51;6305:2;6257:51;:::i;:::-;6241:68;:::i;:::-;6343:15;;;6429:1;6425:10;;;;6413:23;;6409:32;;;6374:12;;;;6453:15;;;6450:35;;;6481:1;6478;6471:12;6450:35;6517:2;6509:6;6505:15;6529:142;6545:6;6540:3;6537:15;6529:142;;;6611:17;;6599:30;;6649:12;;;;6562;;6529:142;;;-1:-1:-1;6689:5:81;6030:670;-1:-1:-1;;;;;;6030:670:81:o;6705:1297::-;6840:6;6848;6856;6909:2;6897:9;6888:7;6884:23;6880:32;6877:52;;;6925:1;6922;6915:12;6877:52;6961:9;6948:23;6938:33;;6990:2;7043;7032:9;7028:18;7015:32;-1:-1:-1;;;;;7107:2:81;7099:6;7096:14;7093:34;;;7123:1;7120;7113:12;7093:34;7161:6;7150:9;7146:22;7136:32;;7206:7;7199:4;7195:2;7191:13;7187:27;7177:55;;7228:1;7225;7218:12;7177:55;7264:2;7251:16;7287:68;7303:51;7351:2;7303:51;:::i;7287:68::-;7389:15;;;7471:1;7467:10;;;;7459:19;;7455:28;;;7420:12;;;;7495:19;;;7492:39;;;7527:1;7524;7517:12;7492:39;7551:11;;;;7571:217;7587:6;7582:3;7579:15;7571:217;;;7667:3;7654:17;7684:31;7709:5;7684:31;:::i;:::-;7728:18;;7604:12;;;;7766;;;;7571:217;;;7807:5;-1:-1:-1;;;7865:2:81;7850:18;;7837:32;;-1:-1:-1;7881:16:81;;;7878:36;;;7910:1;7907;7900:12;7878:36;;;7933:63;7988:7;7977:8;7966:9;7962:24;7933:63;:::i;:::-;7923:73;;;6705:1297;;;;;:::o;8007:592::-;8078:6;8086;8139:2;8127:9;8118:7;8114:23;8110:32;8107:52;;;8155:1;8152;8145:12;8107:52;8195:9;8182:23;-1:-1:-1;;;;;8265:2:81;8257:6;8254:14;8251:34;;;8281:1;8278;8271:12;8251:34;8319:6;8308:9;8304:22;8294:32;;8364:7;8357:4;8353:2;8349:13;8345:27;8335:55;;8386:1;8383;8376:12;8335:55;8426:2;8413:16;8452:2;8444:6;8441:14;8438:34;;;8468:1;8465;8458:12;8438:34;8513:7;8508:2;8499:6;8495:2;8491:15;8487:24;8484:37;8481:57;;;8534:1;8531;8524:12;8481:57;8565:2;8557:11;;;;;8587:6;;-1:-1:-1;8007:592:81;;-1:-1:-1;;;;8007:592:81:o;8604:1192::-;8753:6;8761;8769;8777;8785;8793;8801;8854:3;8842:9;8833:7;8829:23;8825:33;8822:53;;;8871:1;8868;8861:12;8822:53;8910:9;8897:23;8929:31;8954:5;8929:31;:::i;:::-;8979:5;-1:-1:-1;9036:2:81;9021:18;;9008:32;9049:33;9008:32;9049:33;:::i;:::-;9101:7;-1:-1:-1;9160:2:81;9145:18;;9132:32;9173:33;9132:32;9173:33;:::i;:::-;9225:7;-1:-1:-1;9283:2:81;9268:18;;9255:32;-1:-1:-1;;;;;9336:14:81;;;9333:34;;;9363:1;9360;9353:12;9333:34;9402:70;9464:7;9455:6;9444:9;9440:22;9402:70;:::i;:::-;9491:8;;-1:-1:-1;9376:96:81;-1:-1:-1;9579:3:81;9564:19;;9551:33;;-1:-1:-1;9596:16:81;;;9593:36;;;9625:1;9622;9615:12;9593:36;;9664:72;9728:7;9717:8;9706:9;9702:24;9664:72;:::i;:::-;8604:1192;;;;-1:-1:-1;8604:1192:81;;-1:-1:-1;8604:1192:81;;;;9638:98;;-1:-1:-1;;;8604:1192:81:o;9801:548::-;9913:4;9942:2;9971;9960:9;9953:21;10003:6;9997:13;10046:6;10041:2;10030:9;10026:18;10019:34;10071:1;10081:140;10095:6;10092:1;10089:13;10081:140;;;10190:14;;;10186:23;;10180:30;10156:17;;;10175:2;10152:26;10145:66;10110:10;;10081:140;;;10085:3;10270:1;10265:2;10256:6;10245:9;10241:22;10237:31;10230:42;10340:2;10333;10329:7;10324:2;10316:6;10312:15;10308:29;10297:9;10293:45;10289:54;10281:62;;;;9801:548;;;;:::o;11170:127::-;11231:10;11226:3;11222:20;11219:1;11212:31;11262:4;11259:1;11252:15;11286:4;11283:1;11276:15;11302:127;11363:10;11358:3;11354:20;11351:1;11344:31;11394:4;11391:1;11384:15;11418:4;11415:1;11408:15;11434:135;11473:3;11494:17;;;11491:43;;11514:18;;:::i;:::-;-1:-1:-1;11561:1:81;11550:13;;11434:135::o;11574:267::-;11663:6;11658:3;11651:19;11715:6;11708:5;11701:4;11696:3;11692:14;11679:43;-1:-1:-1;11767:1:81;11742:16;;;11760:4;11738:27;;;11731:38;;;;11823:2;11802:15;;;-1:-1:-1;;11798:29:81;11789:39;;;11785:50;;11574:267::o;11846:1069::-;11954:6;11949:3;11942:19;11924:3;11980:4;12021:2;12016:3;12012:12;12046:11;12073;12066:18;;12123:6;12120:1;12116:14;12109:5;12105:26;12093:38;;12154:5;12177:1;12187:702;12201:6;12198:1;12195:13;12187:702;;;12272:5;12266:4;12262:16;12257:3;12250:29;12331:6;12318:20;12421:2;12417:7;12409:5;12393:14;12389:26;12385:40;12365:18;12361:65;12351:93;;12440:1;12437;12430:12;12351:93;12472:30;;12580:16;;;;12531:21;-1:-1:-1;;;;;12612:32:81;;12609:52;;;12657:1;12654;12647:12;12609:52;12710:8;12694:14;12690:29;12681:7;12677:43;12674:63;;;12733:1;12730;12723:12;12674:63;12758:51;12804:4;12794:8;12785:7;12758:51;:::i;:::-;12867:12;;;;12750:59;-1:-1:-1;;;12832:15:81;;;;12223:1;12216:9;12187:702;;;-1:-1:-1;12905:4:81;;11846:1069;-1:-1:-1;;;;;;;11846:1069:81:o;12920:1320::-;13318:2;13330:21;;;13303:18;;13386:22;;;13270:4;13466:6;13439:3;13424:19;;13270:4;13500:304;13514:6;13511:1;13508:13;13500:304;;;13589:6;13576:20;13609:31;13634:5;13609:31;:::i;:::-;-1:-1:-1;;;;;13665:31:81;13653:44;;13720:4;13779:15;;;;13744:12;;;;13693:1;13529:9;13500:304;;;-1:-1:-1;13842:19:81;;;13835:4;13820:20;;13813:49;13871:19;;;-1:-1:-1;;;;;13902:31:81;;13899:51;;;13946:1;13943;13936:12;13899:51;13980:6;13977:1;13973:14;13959:28;;14033:6;14025;14018:4;14013:3;14009:14;13996:44;14059:16;14115:18;;;14135:4;14111:29;;;14106:2;14091:18;;14084:57;14158:76;;14220:13;;14212:6;14204;14158:76;:::i;:::-;14150:84;12920:1320;-1:-1:-1;;;;;;;;;12920:1320:81:o;14245:889::-;14340:6;14371:2;14414;14402:9;14393:7;14389:23;14385:32;14382:52;;;14430:1;14427;14420:12;14382:52;14463:9;14457:16;-1:-1:-1;;;;;14488:6:81;14485:30;14482:50;;;14528:1;14525;14518:12;14482:50;14551:22;;14604:4;14596:13;;14592:27;-1:-1:-1;14582:55:81;;14633:1;14630;14623:12;14582:55;14662:2;14656:9;14685:68;14701:51;14749:2;14701:51;:::i;14685:68::-;14787:15;;;14869:1;14865:10;;;;14857:19;;14853:28;;;14818:12;;;;14893:19;;;14890:39;;;14925:1;14922;14915:12;14890:39;14949:11;;;;14969:135;14985:6;14980:3;14977:15;14969:135;;;15051:10;;15039:23;;15002:12;;;;15082;;;;14969:135;;15139:330;15341:2;15323:21;;;15380:1;15360:18;;;15353:29;-1:-1:-1;;;15413:2:81;15398:18;;15391:37;15460:2;15445:18;;15139:330::o;15474:380::-;15553:1;15549:12;;;;15596;;;15617:61;;15671:4;15663:6;15659:17;15649:27;;15617:61;15724:2;15716:6;15713:14;15693:18;15690:38;15687:161;;15770:10;15765:3;15761:20;15758:1;15751:31;15805:4;15802:1;15795:15;15833:4;15830:1;15823:15;15687:161;;15474:380;;;:::o;15985:545::-;16087:2;16082:3;16079:11;16076:448;;;16123:1;16148:5;16144:2;16137:17;16193:4;16189:2;16179:19;16263:2;16251:10;16247:19;16244:1;16240:27;16234:4;16230:38;16299:4;16287:10;16284:20;16281:47;;;-1:-1:-1;16322:4:81;16281:47;16377:2;16372:3;16368:12;16365:1;16361:20;16355:4;16351:31;16341:41;;16432:82;16450:2;16443:5;16440:13;16432:82;;;16495:17;;;16476:1;16465:13;16432:82;;16706:1206;-1:-1:-1;;;;;16825:3:81;16822:27;16819:53;;;16852:18;;:::i;:::-;16881:94;16971:3;16931:38;16963:4;16957:11;16931:38;:::i;:::-;16925:4;16881:94;:::i;:::-;17001:1;17026:2;17021:3;17018:11;17043:1;17038:616;;;;17698:1;17715:3;17712:93;;;-1:-1:-1;17771:19:81;;;17758:33;17712:93;-1:-1:-1;;16663:1:81;16659:11;;;16655:24;16651:29;16641:40;16687:1;16683:11;;;16638:57;17818:78;;17011:895;;17038:616;15932:1;15925:14;;;15969:4;15956:18;;-1:-1:-1;;17074:17:81;;;17175:9;17197:229;17211:7;17208:1;17205:14;17197:229;;;17300:19;;;17287:33;17272:49;;17407:4;17392:20;;;;17360:1;17348:14;;;;17227:12;17197:229;;;17201:3;17454;17445:7;17442:16;17439:159;;;17578:1;17574:6;17568:3;17562;17559:1;17555:11;17551:21;17547:34;17543:39;17530:9;17525:3;17521:19;17508:33;17504:79;17496:6;17489:95;17439:159;;;17641:1;17635:3;17632:1;17628:11;17624:19;17618:4;17611:33;17011:895;;;16706:1206;;;:::o;18892:128::-;18959:9;;;18980:11;;;18977:37;;;18994:18;;:::i;19025:127::-;19086:10;19081:3;19077:20;19074:1;19067:31;19117:4;19114:1;19107:15;19141:4;19138:1;19131:15",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../core/IERC1155CreatorCore.sol\";\nimport \"../extensions/ERC1155/ERC1155CreatorExtensionApproveTransfer.sol\";\nimport \"../extensions/ICreatorExtensionTokenURI.sol\";\nimport \"../extensions/CreatorExtensionRoyalties.sol\";\n\ncontract MockERC1155CreatorExtensionOverride is ERC1155CreatorExtensionApproveTransfer, ICreatorExtensionTokenURI, CreatorExtensionRoyalties {\n\n    bool _approveEnabled;\n    string _tokenURI;\n    address _creator;\n    mapping(uint256 => RoyaltyInfo) _royaltyInfo;\n\n    struct RoyaltyInfo {\n        address payable[] recipients;\n        uint256[] values;\n    }\n\n    constructor(address creator) {\n        _creator = creator;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC1155CreatorExtensionApproveTransfer, CreatorExtensionRoyalties, IERC165) returns (bool) {\n        return interfaceId == type(ICreatorExtensionTokenURI).interfaceId\n            || super.supportsInterface(interfaceId);\n    }\n\n    function testMintNew(address[] calldata to, uint256[] calldata amounts, string[] calldata uris) external {\n        IERC1155CreatorCore(_creator).mintExtensionNew(to, amounts, uris);\n    }\n\n    function setApproveEnabled(bool enabled) public {\n        _approveEnabled = enabled;\n    }\n\n    function setTokenURI(string calldata uri) public {\n        _tokenURI = uri;\n    }\n\n    function approveTransfer(address, address, address, uint256[] calldata, uint256[] calldata) external view virtual override returns (bool) {\n       return _approveEnabled;\n    }\n\n    function tokenURI(address creator, uint256) external view virtual override returns (string memory) {\n        require(creator == _creator, \"Invalid\");\n        return _tokenURI;\n    }\n\n    function setRoyaltyOverrides(uint256 tokenId, address payable[] memory receivers, uint256[] memory values) public {\n        _royaltyInfo[tokenId] = RoyaltyInfo(receivers, values);\n    }\n\n    function getRoyalties(address creator, uint256 tokenId) external override view returns (address payable[] memory, uint256[] memory) {\n        require(creator == _creator, \"Invalid\");\n\n        if (_royaltyInfo[tokenId].recipients.length > 0) {\n            RoyaltyInfo memory info = _royaltyInfo[tokenId];\n            return (info.recipients, info.values);\n        } else {\n            return (new address payable[](0), new uint256[](0));\n        }\n    }\n}\n",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/mocks/MockERC1155CreatorExtensionOverride.sol",
  "ast": {
    "absolutePath": "project:/contracts/mocks/MockERC1155CreatorExtensionOverride.sol",
    "exportedSymbols": {
      "AddressUpgradeable": [
        1002
      ],
      "AdminControl": [
        185
      ],
      "Context": [
        1933
      ],
      "CreatorCore": [
        13473
      ],
      "CreatorExtension": [
        15525
      ],
      "CreatorExtensionRoyalties": [
        15786
      ],
      "ERC1155CreatorExtensionApproveTransfer": [
        15853
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "EnumerableSet": [
        3816
      ],
      "IAdminControl": [
        417
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionRoyalties": [
        16574
      ],
      "ICreatorExtensionTokenURI": [
        16591
      ],
      "IERC1155CreatorCore": [
        15282
      ],
      "IERC1155CreatorExtensionApproveTransfer": [
        16055
      ],
      "IERC165": [
        2338
      ],
      "IERC721CreatorCore": [
        15407
      ],
      "Math": [
        3203
      ],
      "MockERC1155CreatorExtensionOverride": [
        17187
      ],
      "Ownable": [
        1157
      ],
      "ReentrancyGuard": [
        1211
      ],
      "Strings": [
        2108
      ]
    },
    "id": 17188,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 16962,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:60"
      },
      {
        "absolutePath": "project:/contracts/core/IERC1155CreatorCore.sol",
        "file": "../core/IERC1155CreatorCore.sol",
        "id": 16963,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 17188,
        "sourceUnit": 15283,
        "src": "58:41:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/extensions/ERC1155/ERC1155CreatorExtensionApproveTransfer.sol",
        "file": "../extensions/ERC1155/ERC1155CreatorExtensionApproveTransfer.sol",
        "id": 16964,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 17188,
        "sourceUnit": 15854,
        "src": "100:74:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/extensions/ICreatorExtensionTokenURI.sol",
        "file": "../extensions/ICreatorExtensionTokenURI.sol",
        "id": 16965,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 17188,
        "sourceUnit": 16592,
        "src": "175:53:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/extensions/CreatorExtensionRoyalties.sol",
        "file": "../extensions/CreatorExtensionRoyalties.sol",
        "id": 16966,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 17188,
        "sourceUnit": 15787,
        "src": "229:53:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 16967,
              "name": "ERC1155CreatorExtensionApproveTransfer",
              "nameLocations": [
                "332:38:60"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 15853,
              "src": "332:38:60"
            },
            "id": 16968,
            "nodeType": "InheritanceSpecifier",
            "src": "332:38:60"
          },
          {
            "baseName": {
              "id": 16969,
              "name": "ICreatorExtensionTokenURI",
              "nameLocations": [
                "372:25:60"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 16591,
              "src": "372:25:60"
            },
            "id": 16970,
            "nodeType": "InheritanceSpecifier",
            "src": "372:25:60"
          },
          {
            "baseName": {
              "id": 16971,
              "name": "CreatorExtensionRoyalties",
              "nameLocations": [
                "399:25:60"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 15786,
              "src": "399:25:60"
            },
            "id": 16972,
            "nodeType": "InheritanceSpecifier",
            "src": "399:25:60"
          }
        ],
        "canonicalName": "MockERC1155CreatorExtensionOverride",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 17187,
        "linearizedBaseContracts": [
          17187,
          15786,
          16574,
          15525,
          16591,
          15853,
          16055,
          185,
          2132,
          417,
          2338,
          1157,
          1933
        ],
        "name": "MockERC1155CreatorExtensionOverride",
        "nameLocation": "293:35:60",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 16974,
            "mutability": "mutable",
            "name": "_approveEnabled",
            "nameLocation": "437:15:60",
            "nodeType": "VariableDeclaration",
            "scope": 17187,
            "src": "432:20:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 16973,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "432:4:60",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 16976,
            "mutability": "mutable",
            "name": "_tokenURI",
            "nameLocation": "465:9:60",
            "nodeType": "VariableDeclaration",
            "scope": 17187,
            "src": "458:16:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 16975,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "458:6:60",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 16978,
            "mutability": "mutable",
            "name": "_creator",
            "nameLocation": "488:8:60",
            "nodeType": "VariableDeclaration",
            "scope": 17187,
            "src": "480:16:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 16977,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "480:7:60",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 16983,
            "mutability": "mutable",
            "name": "_royaltyInfo",
            "nameLocation": "534:12:60",
            "nodeType": "VariableDeclaration",
            "scope": 17187,
            "src": "502:44:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$16990_storage_$",
              "typeString": "mapping(uint256 => struct MockERC1155CreatorExtensionOverride.RoyaltyInfo)"
            },
            "typeName": {
              "id": 16982,
              "keyName": "",
              "keyNameLocation": "-1:-1:-1",
              "keyType": {
                "id": 16979,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "510:7:60",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "502:31:60",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$16990_storage_$",
                "typeString": "mapping(uint256 => struct MockERC1155CreatorExtensionOverride.RoyaltyInfo)"
              },
              "valueName": "",
              "valueNameLocation": "-1:-1:-1",
              "valueType": {
                "id": 16981,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 16980,
                  "name": "RoyaltyInfo",
                  "nameLocations": [
                    "521:11:60"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 16990,
                  "src": "521:11:60"
                },
                "referencedDeclaration": 16990,
                "src": "521:11:60",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_RoyaltyInfo_$16990_storage_ptr",
                  "typeString": "struct MockERC1155CreatorExtensionOverride.RoyaltyInfo"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "canonicalName": "MockERC1155CreatorExtensionOverride.RoyaltyInfo",
            "id": 16990,
            "members": [
              {
                "constant": false,
                "id": 16986,
                "mutability": "mutable",
                "name": "recipients",
                "nameLocation": "600:10:60",
                "nodeType": "VariableDeclaration",
                "scope": 16990,
                "src": "582:28:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                  "typeString": "address payable[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 16984,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "582:15:60",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "id": 16985,
                  "nodeType": "ArrayTypeName",
                  "src": "582:17:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                    "typeString": "address payable[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16989,
                "mutability": "mutable",
                "name": "values",
                "nameLocation": "630:6:60",
                "nodeType": "VariableDeclaration",
                "scope": 16990,
                "src": "620:16:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                  "typeString": "uint256[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 16987,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "620:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16988,
                  "nodeType": "ArrayTypeName",
                  "src": "620:9:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                    "typeString": "uint256[]"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RoyaltyInfo",
            "nameLocation": "560:11:60",
            "nodeType": "StructDefinition",
            "scope": 17187,
            "src": "553:90:60",
            "visibility": "public"
          },
          {
            "body": {
              "id": 16999,
              "nodeType": "Block",
              "src": "678:35:60",
              "statements": [
                {
                  "expression": {
                    "id": 16997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 16995,
                      "name": "_creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16978,
                      "src": "688:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 16996,
                      "name": "creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16992,
                      "src": "699:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "688:18:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16998,
                  "nodeType": "ExpressionStatement",
                  "src": "688:18:60"
                }
              ]
            },
            "id": 17000,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16993,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16992,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "669:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17000,
                  "src": "661:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16991,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "661:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "660:17:60"
            },
            "returnParameters": {
              "id": 16994,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "678:0:60"
            },
            "scope": 17187,
            "src": "649:64:60",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              2337,
              15770,
              15821
            ],
            "body": {
              "id": 17024,
              "nodeType": "Block",
              "src": "947:134:60",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 17022,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "id": 17017,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 17012,
                        "name": "interfaceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17003,
                        "src": "964:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "expression": {
                          "arguments": [
                            {
                              "id": 17014,
                              "name": "ICreatorExtensionTokenURI",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16591,
                              "src": "984:25:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ICreatorExtensionTokenURI_$16591_$",
                                "typeString": "type(contract ICreatorExtensionTokenURI)"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_type$_t_contract$_ICreatorExtensionTokenURI_$16591_$",
                                "typeString": "type(contract ICreatorExtensionTokenURI)"
                              }
                            ],
                            "id": 17013,
                            "name": "type",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967269,
                            "src": "979:4:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 17015,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "979:31:60",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_meta_type_t_contract$_ICreatorExtensionTokenURI_$16591",
                            "typeString": "type(contract ICreatorExtensionTokenURI)"
                          }
                        },
                        "id": 17016,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "1011:11:60",
                        "memberName": "interfaceId",
                        "nodeType": "MemberAccess",
                        "src": "979:43:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "src": "964:58:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 17020,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17003,
                          "src": "1062:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 17018,
                          "name": "super",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967271,
                          "src": "1038:5:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_super$_MockERC1155CreatorExtensionOverride_$17187_$",
                            "typeString": "type(contract super MockERC1155CreatorExtensionOverride)"
                          }
                        },
                        "id": 17019,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1044:17:60",
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 15770,
                        "src": "1038:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 17021,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1038:36:60",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "964:110:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 17011,
                  "id": 17023,
                  "nodeType": "Return",
                  "src": "957:117:60"
                }
              ]
            },
            "documentation": {
              "id": 17001,
              "nodeType": "StructuredDocumentation",
              "src": "719:56:60",
              "text": " @dev See {IERC165-supportsInterface}."
            },
            "functionSelector": "01ffc9a7",
            "id": 17025,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nameLocation": "789:17:60",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 17008,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 17005,
                  "name": "ERC1155CreatorExtensionApproveTransfer",
                  "nameLocations": [
                    "856:38:60"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 15853,
                  "src": "856:38:60"
                },
                {
                  "id": 17006,
                  "name": "CreatorExtensionRoyalties",
                  "nameLocations": [
                    "896:25:60"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 15786,
                  "src": "896:25:60"
                },
                {
                  "id": 17007,
                  "name": "IERC165",
                  "nameLocations": [
                    "923:7:60"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2338,
                  "src": "923:7:60"
                }
              ],
              "src": "847:84:60"
            },
            "parameters": {
              "id": 17004,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17003,
                  "mutability": "mutable",
                  "name": "interfaceId",
                  "nameLocation": "814:11:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17025,
                  "src": "807:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 17002,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "807:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "806:20:60"
            },
            "returnParameters": {
              "id": 17011,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17010,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17025,
                  "src": "941:4:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17009,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "941:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "940:6:60"
            },
            "scope": 17187,
            "src": "780:301:60",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17046,
              "nodeType": "Block",
              "src": "1192:82:60",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 17041,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17028,
                        "src": "1249:2:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 17042,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17031,
                        "src": "1253:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 17043,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17034,
                        "src": "1262:4:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 17038,
                            "name": "_creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16978,
                            "src": "1222:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 17037,
                          "name": "IERC1155CreatorCore",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15282,
                          "src": "1202:19:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IERC1155CreatorCore_$15282_$",
                            "typeString": "type(contract IERC1155CreatorCore)"
                          }
                        },
                        "id": 17039,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1202:29:60",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155CreatorCore_$15282",
                          "typeString": "contract IERC1155CreatorCore"
                        }
                      },
                      "id": 17040,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1232:16:60",
                      "memberName": "mintExtensionNew",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 15248,
                      "src": "1202:46:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (address[] memory,uint256[] memory,string memory[] memory) external returns (uint256[] memory)"
                      }
                    },
                    "id": 17044,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1202:65:60",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 17045,
                  "nodeType": "ExpressionStatement",
                  "src": "1202:65:60"
                }
              ]
            },
            "functionSelector": "4aec8cc5",
            "id": 17047,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testMintNew",
            "nameLocation": "1096:11:60",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17035,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17028,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1127:2:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17047,
                  "src": "1108:21:60",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17026,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1108:7:60",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 17027,
                    "nodeType": "ArrayTypeName",
                    "src": "1108:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17031,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "1150:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17047,
                  "src": "1131:26:60",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17029,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1131:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17030,
                    "nodeType": "ArrayTypeName",
                    "src": "1131:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17034,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "1177:4:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17047,
                  "src": "1159:22:60",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17032,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "1159:6:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 17033,
                    "nodeType": "ArrayTypeName",
                    "src": "1159:8:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1107:75:60"
            },
            "returnParameters": {
              "id": 17036,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1192:0:60"
            },
            "scope": 17187,
            "src": "1087:187:60",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 17056,
              "nodeType": "Block",
              "src": "1328:42:60",
              "statements": [
                {
                  "expression": {
                    "id": 17054,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 17052,
                      "name": "_approveEnabled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16974,
                      "src": "1338:15:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 17053,
                      "name": "enabled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17049,
                      "src": "1356:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1338:25:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17055,
                  "nodeType": "ExpressionStatement",
                  "src": "1338:25:60"
                }
              ]
            },
            "functionSelector": "d9accf92",
            "id": 17057,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setApproveEnabled",
            "nameLocation": "1289:17:60",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17050,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17049,
                  "mutability": "mutable",
                  "name": "enabled",
                  "nameLocation": "1312:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17057,
                  "src": "1307:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17048,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1307:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1306:14:60"
            },
            "returnParameters": {
              "id": 17051,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1328:0:60"
            },
            "scope": 17187,
            "src": "1280:90:60",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17066,
              "nodeType": "Block",
              "src": "1425:32:60",
              "statements": [
                {
                  "expression": {
                    "id": 17064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 17062,
                      "name": "_tokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16976,
                      "src": "1435:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 17063,
                      "name": "uri",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17059,
                      "src": "1447:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_calldata_ptr",
                        "typeString": "string calldata"
                      }
                    },
                    "src": "1435:15:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 17065,
                  "nodeType": "ExpressionStatement",
                  "src": "1435:15:60"
                }
              ]
            },
            "functionSelector": "e0df5b6f",
            "id": 17067,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURI",
            "nameLocation": "1385:11:60",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17059,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "1413:3:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17067,
                  "src": "1397:19:60",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17058,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1397:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1396:21:60"
            },
            "returnParameters": {
              "id": 17061,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1425:0:60"
            },
            "scope": 17187,
            "src": "1376:81:60",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              16054
            ],
            "body": {
              "id": 17087,
              "nodeType": "Block",
              "src": "1601:38:60",
              "statements": [
                {
                  "expression": {
                    "id": 17085,
                    "name": "_approveEnabled",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 16974,
                    "src": "1617:15:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 17084,
                  "id": 17086,
                  "nodeType": "Return",
                  "src": "1610:22:60"
                }
              ]
            },
            "functionSelector": "e4835177",
            "id": 17088,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "approveTransfer",
            "nameLocation": "1472:15:60",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 17081,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1577:8:60"
            },
            "parameters": {
              "id": 17080,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17069,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17088,
                  "src": "1488:7:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17068,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1488:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17071,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17088,
                  "src": "1497:7:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17070,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1497:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17073,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17088,
                  "src": "1506:7:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17072,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1506:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17076,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17088,
                  "src": "1515:18:60",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17074,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1515:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17075,
                    "nodeType": "ArrayTypeName",
                    "src": "1515:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17079,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17088,
                  "src": "1535:18:60",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17077,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1535:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17078,
                    "nodeType": "ArrayTypeName",
                    "src": "1535:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1487:67:60"
            },
            "returnParameters": {
              "id": 17084,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17083,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17088,
                  "src": "1595:4:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17082,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1595:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1594:6:60"
            },
            "scope": 17187,
            "src": "1463:176:60",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              16590
            ],
            "body": {
              "id": 17107,
              "nodeType": "Block",
              "src": "1744:82:60",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 17101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 17099,
                          "name": "creator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17090,
                          "src": "1762:7:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 17100,
                          "name": "_creator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16978,
                          "src": "1773:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1762:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "id": 17102,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1783:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345",
                          "typeString": "literal_string \"Invalid\""
                        },
                        "value": "Invalid"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345",
                          "typeString": "literal_string \"Invalid\""
                        }
                      ],
                      "id": 17098,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1754:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 17103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1754:39:60",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17104,
                  "nodeType": "ExpressionStatement",
                  "src": "1754:39:60"
                },
                {
                  "expression": {
                    "id": 17105,
                    "name": "_tokenURI",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 16976,
                    "src": "1810:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 17097,
                  "id": 17106,
                  "nodeType": "Return",
                  "src": "1803:16:60"
                }
              ]
            },
            "functionSelector": "e9dc6375",
            "id": 17108,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenURI",
            "nameLocation": "1654:8:60",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 17094,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1711:8:60"
            },
            "parameters": {
              "id": 17093,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17090,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "1671:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17108,
                  "src": "1663:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17089,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1663:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17092,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17108,
                  "src": "1680:7:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17091,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1680:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1662:26:60"
            },
            "returnParameters": {
              "id": 17097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17096,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17108,
                  "src": "1729:13:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17095,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1729:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1728:15:60"
            },
            "scope": 17187,
            "src": "1645:181:60",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 17128,
              "nodeType": "Block",
              "src": "1946:71:60",
              "statements": [
                {
                  "expression": {
                    "id": 17126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 17119,
                        "name": "_royaltyInfo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16983,
                        "src": "1956:12:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$16990_storage_$",
                          "typeString": "mapping(uint256 => struct MockERC1155CreatorExtensionOverride.RoyaltyInfo storage ref)"
                        }
                      },
                      "id": 17121,
                      "indexExpression": {
                        "id": 17120,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17110,
                        "src": "1969:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1956:21:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RoyaltyInfo_$16990_storage",
                        "typeString": "struct MockERC1155CreatorExtensionOverride.RoyaltyInfo storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 17123,
                          "name": "receivers",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17113,
                          "src": "1992:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                            "typeString": "address payable[] memory"
                          }
                        },
                        {
                          "id": 17124,
                          "name": "values",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17116,
                          "src": "2003:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                            "typeString": "address payable[] memory"
                          },
                          {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        ],
                        "id": 17122,
                        "name": "RoyaltyInfo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16990,
                        "src": "1980:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_RoyaltyInfo_$16990_storage_ptr_$",
                          "typeString": "type(struct MockERC1155CreatorExtensionOverride.RoyaltyInfo storage pointer)"
                        }
                      },
                      "id": 17125,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1980:30:60",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RoyaltyInfo_$16990_memory_ptr",
                        "typeString": "struct MockERC1155CreatorExtensionOverride.RoyaltyInfo memory"
                      }
                    },
                    "src": "1956:54:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RoyaltyInfo_$16990_storage",
                      "typeString": "struct MockERC1155CreatorExtensionOverride.RoyaltyInfo storage ref"
                    }
                  },
                  "id": 17127,
                  "nodeType": "ExpressionStatement",
                  "src": "1956:54:60"
                }
              ]
            },
            "functionSelector": "dc83b1b9",
            "id": 17129,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setRoyaltyOverrides",
            "nameLocation": "1841:19:60",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17117,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17110,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "1869:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17129,
                  "src": "1861:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17109,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1861:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17113,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "1903:9:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17129,
                  "src": "1878:34:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17111,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1878:15:60",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 17112,
                    "nodeType": "ArrayTypeName",
                    "src": "1878:17:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17116,
                  "mutability": "mutable",
                  "name": "values",
                  "nameLocation": "1931:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17129,
                  "src": "1914:23:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17114,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1914:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17115,
                    "nodeType": "ArrayTypeName",
                    "src": "1914:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1860:78:60"
            },
            "returnParameters": {
              "id": 17118,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1946:0:60"
            },
            "scope": 17187,
            "src": "1832:185:60",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15785
            ],
            "body": {
              "id": 17185,
              "nodeType": "Block",
              "src": "2155:320:60",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 17146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 17144,
                          "name": "creator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17131,
                          "src": "2173:7:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 17145,
                          "name": "_creator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16978,
                          "src": "2184:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2173:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "id": 17147,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2194:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345",
                          "typeString": "literal_string \"Invalid\""
                        },
                        "value": "Invalid"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345",
                          "typeString": "literal_string \"Invalid\""
                        }
                      ],
                      "id": 17143,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "2165:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 17148,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2165:39:60",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17149,
                  "nodeType": "ExpressionStatement",
                  "src": "2165:39:60"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 17156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "expression": {
                          "baseExpression": {
                            "id": 17150,
                            "name": "_royaltyInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16983,
                            "src": "2219:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$16990_storage_$",
                              "typeString": "mapping(uint256 => struct MockERC1155CreatorExtensionOverride.RoyaltyInfo storage ref)"
                            }
                          },
                          "id": 17152,
                          "indexExpression": {
                            "id": 17151,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17133,
                            "src": "2232:7:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2219:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RoyaltyInfo_$16990_storage",
                            "typeString": "struct MockERC1155CreatorExtensionOverride.RoyaltyInfo storage ref"
                          }
                        },
                        "id": 17153,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2241:10:60",
                        "memberName": "recipients",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16986,
                        "src": "2219:32:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_storage",
                          "typeString": "address payable[] storage ref"
                        }
                      },
                      "id": 17154,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2252:6:60",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "2219:39:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 17155,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2261:1:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2219:43:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 17183,
                    "nodeType": "Block",
                    "src": "2393:76:60",
                    "statements": [
                      {
                        "expression": {
                          "components": [
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 17174,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2437:1:60",
                                  "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": 17173,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "2415:21:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (address payable[] memory)"
                                },
                                "typeName": {
                                  "baseType": {
                                    "id": 17171,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2419:15:60",
                                    "stateMutability": "payable",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  "id": 17172,
                                  "nodeType": "ArrayTypeName",
                                  "src": "2419:17:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                                    "typeString": "address payable[]"
                                  }
                                }
                              },
                              "id": 17175,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2415:24:60",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                                "typeString": "address payable[] memory"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 17179,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2455:1:60",
                                  "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": 17178,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "2441:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (uint256[] memory)"
                                },
                                "typeName": {
                                  "baseType": {
                                    "id": 17176,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2445:7:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 17177,
                                  "nodeType": "ArrayTypeName",
                                  "src": "2445:9:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                    "typeString": "uint256[]"
                                  }
                                }
                              },
                              "id": 17180,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2441:16:60",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            }
                          ],
                          "id": 17181,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2414:44:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                            "typeString": "tuple(address payable[] memory,uint256[] memory)"
                          }
                        },
                        "functionReturnParameters": 17142,
                        "id": 17182,
                        "nodeType": "Return",
                        "src": "2407:51:60"
                      }
                    ]
                  },
                  "id": 17184,
                  "nodeType": "IfStatement",
                  "src": "2215:254:60",
                  "trueBody": {
                    "id": 17170,
                    "nodeType": "Block",
                    "src": "2264:123:60",
                    "statements": [
                      {
                        "assignments": [
                          17159
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 17159,
                            "mutability": "mutable",
                            "name": "info",
                            "nameLocation": "2297:4:60",
                            "nodeType": "VariableDeclaration",
                            "scope": 17170,
                            "src": "2278:23:60",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RoyaltyInfo_$16990_memory_ptr",
                              "typeString": "struct MockERC1155CreatorExtensionOverride.RoyaltyInfo"
                            },
                            "typeName": {
                              "id": 17158,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 17157,
                                "name": "RoyaltyInfo",
                                "nameLocations": [
                                  "2278:11:60"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 16990,
                                "src": "2278:11:60"
                              },
                              "referencedDeclaration": 16990,
                              "src": "2278:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RoyaltyInfo_$16990_storage_ptr",
                                "typeString": "struct MockERC1155CreatorExtensionOverride.RoyaltyInfo"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 17163,
                        "initialValue": {
                          "baseExpression": {
                            "id": 17160,
                            "name": "_royaltyInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16983,
                            "src": "2304:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$16990_storage_$",
                              "typeString": "mapping(uint256 => struct MockERC1155CreatorExtensionOverride.RoyaltyInfo storage ref)"
                            }
                          },
                          "id": 17162,
                          "indexExpression": {
                            "id": 17161,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17133,
                            "src": "2317:7:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2304:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RoyaltyInfo_$16990_storage",
                            "typeString": "struct MockERC1155CreatorExtensionOverride.RoyaltyInfo storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2278:47:60"
                      },
                      {
                        "expression": {
                          "components": [
                            {
                              "expression": {
                                "id": 17164,
                                "name": "info",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17159,
                                "src": "2347:4:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RoyaltyInfo_$16990_memory_ptr",
                                  "typeString": "struct MockERC1155CreatorExtensionOverride.RoyaltyInfo memory"
                                }
                              },
                              "id": 17165,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2352:10:60",
                              "memberName": "recipients",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16986,
                              "src": "2347:15:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                                "typeString": "address payable[] memory"
                              }
                            },
                            {
                              "expression": {
                                "id": 17166,
                                "name": "info",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17159,
                                "src": "2364:4:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RoyaltyInfo_$16990_memory_ptr",
                                  "typeString": "struct MockERC1155CreatorExtensionOverride.RoyaltyInfo memory"
                                }
                              },
                              "id": 17167,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2369:6:60",
                              "memberName": "values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16989,
                              "src": "2364:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            }
                          ],
                          "id": 17168,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2346:30:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                            "typeString": "tuple(address payable[] memory,uint256[] memory)"
                          }
                        },
                        "functionReturnParameters": 17142,
                        "id": 17169,
                        "nodeType": "Return",
                        "src": "2339:37:60"
                      }
                    ]
                  }
                }
              ]
            },
            "functionSelector": "9ca7dc7a",
            "id": 17186,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRoyalties",
            "nameLocation": "2032:12:60",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 17135,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2088:8:60"
            },
            "parameters": {
              "id": 17134,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17131,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "2053:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17186,
                  "src": "2045:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17130,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2045:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17133,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "2070:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 17186,
                  "src": "2062:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17132,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2062:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2044:34:60"
            },
            "returnParameters": {
              "id": 17142,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17138,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17186,
                  "src": "2111:24:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17136,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2111:15:60",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 17137,
                    "nodeType": "ArrayTypeName",
                    "src": "2111:17:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17141,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17186,
                  "src": "2137:16:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17139,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2137:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17140,
                    "nodeType": "ArrayTypeName",
                    "src": "2137:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2110:44:60"
            },
            "scope": 17187,
            "src": "2023:452:60",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 17188,
        "src": "284:2193:60",
        "usedErrors": []
      }
    ],
    "src": "33:2445:60"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.788Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "approveAdmin(address)": {
        "details": "See {IAdminControl-approveAdmin}."
      },
      "getAdmins()": {
        "details": "See {IAdminControl-getAdmins}."
      },
      "getRoyalties(address,uint256)": {
        "details": "See {ICreatorExtensionRoyalties-getRoyalties}"
      },
      "isAdmin(address)": {
        "details": "See {IAdminControl-isAdmin}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "revokeAdmin(address)": {
        "details": "See {IAdminControl-revokeAdmin}."
      },
      "setApproveTransfer(address,bool)": {
        "details": "See {IERC1155CreatorExtensionApproveTransfer-setApproveTransfer}"
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}