{
  "contractName": "ERC1155CreatorUpgradeable",
  "abi": [
    {
      "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": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "ApproveTransferUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "DefaultRoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "ExtensionApproveTransferUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionBlacklisted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "ExtensionRoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionUnregistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "permissions",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "MintPermissionsUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "RoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "TransferBatch",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "TransferSingle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "value",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "URI",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "approveAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        }
      ],
      "name": "balanceOfBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAdmins",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "admins",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getApproveTransfer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getExtensions",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "extensions",
          "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": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "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": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "setApproveTransferExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        }
      ],
      "name": "initialize",
      "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": "extension",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "baseURI",
          "type": "string"
        }
      ],
      "name": "registerExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "baseURI",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "baseURIIdentical",
          "type": "bool"
        }
      ],
      "name": "registerExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "unregisterExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "blacklistExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri_",
          "type": "string"
        }
      ],
      "name": "setBaseTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri_",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "identical",
          "type": "bool"
        }
      ],
      "name": "setBaseTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "prefix",
          "type": "string"
        }
      ],
      "name": "setTokenURIPrefixExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "setTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri_",
          "type": "string"
        }
      ],
      "name": "setTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri_",
          "type": "string"
        }
      ],
      "name": "setBaseTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "prefix",
          "type": "string"
        }
      ],
      "name": "setTokenURIPrefix",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri_",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "permissions",
          "type": "address"
        }
      ],
      "name": "setMintPermissions",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintBaseNew",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "mintBaseExisting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintExtensionNew",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "mintExtensionExisting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenExtension",
      "outputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyalties",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyalties",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyaltiesExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "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": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFees",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFeeRecipients",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFeeBps",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "royaltyInfo",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "uri",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "setApproveTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"ApproveTransferUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"DefaultRoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"ExtensionApproveTransferUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"ExtensionRoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"permissions\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"MintPermissionsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"RoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"approveAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"blacklistExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAdmins\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApproveTransfer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExtensions\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"extensions\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFeeBps\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFeeRecipients\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFees\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"mintBaseExisting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintBaseNew\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"mintExtensionExisting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintExtensionNew\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"registerExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"baseURIIdentical\",\"type\":\"bool\"}],\"name\":\"registerExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"setApproveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setApproveTransferExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"name\":\"setBaseTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"name\":\"setBaseTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"identical\",\"type\":\"bool\"}],\"name\":\"setBaseTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"permissions\",\"type\":\"address\"}],\"name\":\"setMintPermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyalties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyalties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyaltiesExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"setTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"name\":\"setTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prefix\",\"type\":\"string\"}],\"name\":\"setTokenURIPrefix\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prefix\",\"type\":\"string\"}],\"name\":\"setTokenURIPrefixExtension\",\"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\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenExtension\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"unregisterExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155Creator implementation (using transparent upgradeable proxy)\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"approveAdmin(address)\":{\"details\":\"See {IAdminControl-approveAdmin}.\"},\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"blacklistExtension(address)\":{\"details\":\"See {ICreatorCore-blacklistExtension}.\"},\"burn(address,uint256[],uint256[])\":{\"details\":\"See {IERC1155CreatorCore-burn}.\"},\"getAdmins()\":{\"details\":\"See {IAdminControl-getAdmins}.\"},\"getApproveTransfer()\":{\"details\":\"See {ICreatorCore-getApproveTransfer}.\"},\"getExtensions()\":{\"details\":\"See {ICreatorCore-getExtensions}.\"},\"getFeeBps(uint256)\":{\"details\":\"See {ICreatorCore-getFeeBps}.\"},\"getFeeRecipients(uint256)\":{\"details\":\"See {ICreatorCore-getFeeRecipients}.\"},\"getFees(uint256)\":{\"details\":\"See {ICreatorCore-getFees}.\"},\"getRoyalties(uint256)\":{\"details\":\"See {ICreatorCore-getRoyalties}.\"},\"isAdmin(address)\":{\"details\":\"See {IAdminControl-isAdmin}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"mintBaseExisting(address[],uint256[],uint256[])\":{\"details\":\"See {IERC1155CreatorCore-mintBaseExisting}.\"},\"mintBaseNew(address[],uint256[],string[])\":{\"details\":\"See {IERC1155CreatorCore-mintBaseNew}.\"},\"mintExtensionExisting(address[],uint256[],uint256[])\":{\"details\":\"See {IERC1155CreatorCore-mintExtensionExisting}.\"},\"mintExtensionNew(address[],uint256[],string[])\":{\"details\":\"See {IERC1155CreatorCore-mintExtensionNew}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerExtension(address,string)\":{\"details\":\"See {ICreatorCore-registerExtension}.\"},\"registerExtension(address,string,bool)\":{\"details\":\"See {ICreatorCore-registerExtension}.\"},\"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}.\"},\"royaltyInfo(uint256,uint256)\":{\"details\":\"See {ICreatorCore-royaltyInfo}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"setApproveTransfer(address)\":{\"details\":\"See {ICreatorCore-setApproveTransfer}.\"},\"setApproveTransferExtension(bool)\":{\"details\":\"See {ICreatorCore-setApproveTransferExtension}.\"},\"setBaseTokenURI(string)\":{\"details\":\"See {ICreatorCore-setBaseTokenURI}.\"},\"setBaseTokenURIExtension(string)\":{\"details\":\"See {ICreatorCore-setBaseTokenURIExtension}.\"},\"setBaseTokenURIExtension(string,bool)\":{\"details\":\"See {ICreatorCore-setBaseTokenURIExtension}.\"},\"setMintPermissions(address,address)\":{\"details\":\"See {ICreatorCore-setMintPermissions}.\"},\"setRoyalties(address[],uint256[])\":{\"details\":\"See {ICreatorCore-setRoyalties}.\"},\"setRoyalties(uint256,address[],uint256[])\":{\"details\":\"See {ICreatorCore-setRoyalties}.\"},\"setRoyaltiesExtension(address,address[],uint256[])\":{\"details\":\"See {ICreatorCore-setRoyaltiesExtension}.\"},\"setTokenURI(uint256,string)\":{\"details\":\"See {ICreatorCore-setTokenURI}.\"},\"setTokenURI(uint256[],string[])\":{\"details\":\"See {ICreatorCore-setTokenURI}.\"},\"setTokenURIExtension(uint256,string)\":{\"details\":\"See {ICreatorCore-setTokenURIExtension}.\"},\"setTokenURIExtension(uint256[],string[])\":{\"details\":\"See {ICreatorCore-setTokenURIExtension}.\"},\"setTokenURIPrefix(string)\":{\"details\":\"See {ICreatorCore-setTokenURIPrefix}.\"},\"setTokenURIPrefixExtension(string)\":{\"details\":\"See {ICreatorCore-setTokenURIPrefixExtension}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"tokenExtension(uint256)\":{\"details\":\"See {IERC1155CreatorCore-tokenExtension}.\"},\"totalSupply(uint256)\":{\"details\":\"Total amount of tokens in with a given id.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unregisterExtension(address)\":{\"details\":\"See {ICreatorCore-unregisterExtension}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(string,string)\":{\"notice\":\"Initializer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ERC1155CreatorUpgradeable.sol\":\"ERC1155CreatorUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":25},\"remappings\":[]},\"sources\":{\"@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol\":{\"keccak256\":\"0x3823f6776d95b9bd80a94d4d216bf490953e853ef3e39e9984696a059acb627e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be05229f3ad39f0eb67377e7c738996b7ec06963dd229df767b1103ede32e3c7\",\"dweb:/ipfs/QmSte72PAanW861DF3FWbn2wyfYzYPtkndqdBEphLqZoLP\"]},\"@manifoldxyz/libraries-solidity/contracts/access/IAdminControl.sol\":{\"keccak256\":\"0x7cc2e4e7d9052532f445e62ec1fa2f05cc0f5d1d8ee1fea913b43a132277bf2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://266618317d0654fe209b5450b8b5afa3a4a8d41294a2b37ddbae540099859887\",\"dweb:/ipfs/QmYksDqoxhachoqZquXGtjfiuAWJ1rxAKLtUYPL3YboBkE\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6392f2cfe3a5ee802227fe7a2dfd47096d881aec89bddd214b35c5b46d3cd941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd9c47a375639888e726a99da718890ba16d17d7ad9eacb0ccc892d46d1b3ee0\",\"dweb:/ipfs/Qmb41W5RUjy2sWg49A2rMnxekSeEk6SvGyJL5tyCCSr7un\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xa66d18b9a85458d28fc3304717964502ae36f7f8a2ff35bc83f6f85d74b03574\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e46c80ea068989111d6103e5521223f9ef337e93de76deed8b03f75c6f7b2797\",\"dweb:/ipfs/QmNoSE6knNfFncdDDLTb3fGR6oSQty1srG96Vsx3E9wQdw\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@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/ERC1155CreatorUpgradeable.sol\":{\"keccak256\":\"0x6cbd670316427ecf3a2a63670f612006e4ef1f0a4ed2da2bdeee8981c98b765a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://320ab650443b4fab180ebcc074d1e50c51e5439a15e353e5644c225c0ad6e9b3\",\"dweb:/ipfs/QmcpazQoRBSRhrkrEMydCrTR1uHAHXVNuCSUwYHczC9jDo\"]},\"project:/contracts/core/CreatorCore.sol\":{\"keccak256\":\"0x6e8b20c32d6122ed1d23af683260ea242f1197dc95b063b63ccfac5b90e65f31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bffa862c93d614e9d5727ff595cb8595dbb9eae43bfdf06f65c7331aec09c268\",\"dweb:/ipfs/QmUsPC55S2vdfQWL3HQTYDz66yRFhdbPGCjr1NYyxBT83P\"]},\"project:/contracts/core/ERC1155CreatorCore.sol\":{\"keccak256\":\"0x6f0fac34514386543d742675a6100bad59ced735324f324b21eb4c9571e0d281\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd6e0da4b354afedc59a51af11d506ca2ba31483757b71b4caad7b9586212dc4\",\"dweb:/ipfs/Qmf3wbvgy87Xgirt4XLcWcmrj3Gexf9frFtPyZNtyYxXSd\"]},\"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/extensions/ERC1155/IERC1155CreatorExtensionApproveTransfer.sol\":{\"keccak256\":\"0x721390972cc45ff82d97046f5b9e560369a4bf25ae1db2ee0998c8dfc484b782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f564087ce1ed42a2dbb0bd4dd463643ebb51dc8662c6a8ff34b073d94f38ca24\",\"dweb:/ipfs/QmNyZnZLe3dTxpCVLxA2hKamUjDUhds4BjSb7EvegS52yS\"]},\"project:/contracts/extensions/ERC1155/IERC1155CreatorExtensionBurnable.sol\":{\"keccak256\":\"0xc274a67fd639f490659aae3c188b7eaef5f819367f61b058e547681c1410e22f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2862472b3f417e447faa442cf27a1ea33cea678ff4f64b4cc99102d5d1e6bfb8\",\"dweb:/ipfs/QmepVRQniqf5hpSWgptfoxbYw546s9L6uo9PiobsStxJ7D\"]},\"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/permissions/ERC1155/IERC1155CreatorMintPermissions.sol\":{\"keccak256\":\"0x0cf037e3da9a47dab1b0c287d128497f6e28bdbadb4b66f7949a63f8fa144de0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://627c99459b5e9bf311d7b463ffefc405ca7f257a518ad7b6ea3e14859998bb25\",\"dweb:/ipfs/QmaPeix3g2ZDAt662biM5pkAEJ54TNH4jCqeJd46KhEguP\"]},\"project:/contracts/token/ERC1155/ERC1155Core.sol\":{\"keccak256\":\"0x3c2d6f41b6293f667326ac028729fe2f6b4f7c35af334c1136cd8d7192187c8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db91053b42e25febef3cd2fc9f82a3565fcdc7a56775005bc5bca805db18b8a9\",\"dweb:/ipfs/QmdDDgyiYqM5EZg5n4XA1kWoGfxVKk6CooQUzfTWj1pGNe\"]},\"project:/contracts/token/ERC1155/ERC1155Upgradeable.sol\":{\"keccak256\":\"0xed8d40395c42b515814a11ea1f355c128befddc8c628a9b0ee62a125804fe935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://453b0fd87d6f77923876f406eb862cb9c941d3bf914f22fb81721a6162a6fcdc\",\"dweb:/ipfs/QmXuohHWNRbFXe5RvwPZQHtMgRkanRcSCX5wMd2TMRUJ6N\"]}},\"version\":1}",
  "bytecode": "0x60806040526000606c553480156200001657600080fd5b506001606555620000266200002c565b620000ee565b600054610100900460ff1615620000995760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000ec576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615db880620000fe6000396000f3fe608060405234801561001057600080fd5b506004361061026b5760003560e01c8063695c96e61161014d578063695c96e6146104a95780636d73e669146104bc578063715018a6146104cf57806382dcc0c8146104d757806383b7db63146104ea5780638c6e8472146104f25780638da5cb5b1461050557806395d89b411461050d57806399e0dd7c14610515578063a22cb46514610528578063aafb2d441461053b578063ac0c8cfa1461054e578063b0fe87c914610561578063b9c4d9fb14610574578063bb3bafd614610587578063bd85b039146105a8578063ce8aee9d146105c8578063d5a06d4c14610587578063e6c884dc146105db578063e92a89f6146105ee578063e985e9c514610601578063f0cdc49914610614578063f242432a14610627578063f2fde38b1461063a578063feeb5a9a1461064d578063ffa1ad741461066057600080fd5b8062fdd58e1461027057806301ffc9a71461029657806302e7afb7146102b957806306fdde03146102ce5780630e89341c146102e35780630ebd4c7f146102f6578063162094c41461031657806320e4afe21461032957806322f374d01461033c578063239be3171461035657806324d7806c146103695780632a55205a1461037c5780632d3456701461039d5780632eb2c2d6146103b057806330176e13146103c35780633071a0f9146103d657806331ae450b146103e9578063332dd1ae146103fe5780633db0f8ab146104115780633e6134b8146104245780633f0f37f6146104375780634cd88b761461044a5780634e1273f41461045d578063596798ad1461047057806361e5bc6b1461048357806366d1e9d014610496575b600080fd5b61028361027e36600461476b565b610668565b6040519081526020015b60405180910390f35b6102a96102a43660046147ad565b610703565b604051901515815260200161028d565b6102cc6102c73660046147ca565b61072c565b005b6102d6610778565b60405161028d9190614837565b6102d66102f136600461484a565b61080a565b61030961030436600461484a565b610815565b60405161028d919061489e565b6102cc6103243660046148f2565b610820565b6102cc610337366004614981565b610870565b606d546001600160a01b03165b60405161028d91906149fa565b61034961036436600461484a565b6108c4565b6102a96103773660046147ca565b61094d565b61038f61038a366004614a0e565b61097c565b60405161028d929190614a30565b6102cc6103ab3660046147ca565b610995565b6102cc6103be366004614ba2565b6109f2565b6102cc6103d1366004614c4f565b610a37565b6102cc6103e4366004614c90565b610a81565b6103f1610ad7565b60405161028d9190614d04565b6102cc61040c366004614d17565b610b85565b6102cc61041f366004614d82565b610bd9565b6102cc610432366004614c4f565b610d38565b6102cc610445366004614dcf565b610d4c565b6102cc610458366004614e36565b610da1565b61030961046b366004614e99565b610ec4565b6102cc61047e3660046147ca565b610fed565b6102cc610491366004614d17565b611036565b6102cc6104a4366004614c4f565b6110b5565b6102cc6104b7366004614f5b565b6110c7565b6102cc6104ca3660046147ca565b6111ef565b6102cc611247565b6102cc6104e5366004614ff4565b61125b565b6103f161126e565b610309610500366004614f5b565b61130e565b610349611345565b6102d6611354565b6102cc610523366004614c4f565b611363565b6102cc61053636600461504a565b6113ad565b6102cc610549366004614d17565b6113b8565b6102cc61055c366004615083565b61146f565b6102cc61056f366004614d82565b611481565b6103f161058236600461484a565b6114ce565b61059a61059536600461484a565b6114d9565b60405161028d9291906150a0565b6102836105b636600461484a565b6000908152607b602052604090205490565b6102cc6105d63660046147ca565b6114ee565b6102cc6105e9366004614f5b565b611537565b6102cc6105fc3660046148f2565b6115ee565b6102a961060f3660046150ce565b611601565b6102cc6106223660046150ce565b61162f565b6102cc6106353660046150fc565b611679565b6102cc6106483660046147ca565b6116be565b61030961065b366004614f5b565b611734565b610283600381565b60006001600160a01b0383166106d85760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000818152606a602090815260408083206001600160a01b03861684529091529020545b92915050565b600061070e8261178e565b8061071d575061071d826117b3565b806106fd57506106fd826117ee565b33610735611345565b6001600160a01b031614806107505750610750606633611823565b61076c5760405162461bcd60e51b81526004016106cf90615164565b61077581611848565b50565b606060688054610787906151a8565b80601f01602080910402602001604051908101604052809291908181526020018280546107b3906151a8565b80156108005780601f106107d557610100808354040283529160200191610800565b820191906000526020600020905b8154815290600101906020018083116107e357829003601f168201915b5050505050905090565b60606106fd82611954565b60606106fd82611bf0565b33610829611345565b6001600160a01b031614806108445750610844606633611823565b6108605760405162461bcd60e51b81526004016106cf90615164565b61086b838383611bfb565b505050565b33610879611345565b6001600160a01b031614806108945750610894606633611823565b6108b05760405162461bcd60e51b81526004016106cf90615164565b6108bd8585858585611c5f565b5050505050565b60006108cf82611ce6565b90506001600160a01b0381166109205760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b60448201526064016106cf565b61092b607082611823565b156109485760405162461bcd60e51b81526004016106cf906151dc565b919050565b6000816001600160a01b0316610961611345565b6001600160a01b031614806106fd57506106fd606683611823565b6000806109898484611d01565b915091505b9250929050565b61099d611dd7565b6109a8606682611823565b156107755760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a36109ee606682611e36565b5050565b6001600160a01b038516331480610a0e5750610a0e8533611601565b610a2a5760405162461bcd60e51b81526004016106cf9061520b565b6108bd8585858585611e4b565b33610a40611345565b6001600160a01b03161480610a5b5750610a5b606633611823565b610a775760405162461bcd60e51b81526004016106cf90615164565b6109ee8282611fde565b33610a8a611345565b6001600160a01b03161480610aa55750610aa5606633611823565b610ac15760405162461bcd60e51b81526004016106cf90615164565b610aca83612013565b61086b838383600061203b565b6060610ae3606661212c565b6001600160401b03811115610afa57610afa614a49565b604051908082528060200260200182016040528015610b23578160200160208202803683370190505b50905060005b610b33606661212c565b811015610b8157610b45606682612136565b828281518110610b5757610b57615259565b6001600160a01b039092166020928302919091019091015280610b7981615285565b915050610b29565b5090565b33610b8e611345565b6001600160a01b03161480610ba95750610ba9606633611823565b610bc55760405162461bcd60e51b81526004016106cf90615164565b610bd3600085858585612142565b50505050565b610be161222f565b6001600160a01b038516331480610bfd5750610bfd8533611601565b610c495760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f7665640060448201526064016106cf565b828114610c685760405162461bcd60e51b81526004016106cf9061529e565b6001839003610cb357610cae8585856000818110610c8857610c88615259565b9050602002013584846000818110610ca257610ca2615259565b90506020020135612288565b610d21565b610d2185858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152506122bb92505050565b610d2e8585858585612334565b6108bd6001606555565b610d40612496565b6109ee828260006124ec565b33610d55611345565b6001600160a01b03161480610d705750610d70606633611823565b610d8c5760405162461bcd60e51b81526004016106cf90615164565b610d9584612013565b610bd38484848461203b565b600054610100900460ff1615808015610dc15750600054600160ff909116105b80610de25750610dd030612529565b158015610de2575060005460ff166001145b610e455760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106cf565b6000805460ff191660011790558015610e68576000805461ff0019166101001790555b610e728383612538565b610e7a612569565b801561086b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60608151835114610f295760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016106cf565b600083516001600160401b03811115610f4457610f44614a49565b604051908082528060200260200182016040528015610f6d578160200160208202803683370190505b50905060005b8451811015610fe557610fb8858281518110610f9157610f91615259565b6020026020010151858381518110610fab57610fab615259565b6020026020010151610668565b828281518110610fca57610fca615259565b6020908102919091010152610fde81615285565b9050610f73565b509392505050565b33610ff6611345565b6001600160a01b031614806110115750611011606633611823565b61102d5760405162461bcd60e51b81526004016106cf90615164565b61077581612598565b61103e612496565b82811461105d5760405162461bcd60e51b81526004016106cf9061529e565b60005b838110156108bd576110ad85858381811061107d5761107d615259565b9050602002013584848481811061109657611096615259565b90506020028101906110a891906152c5565b6125ee565b600101611060565b6110bd612496565b6109ee82826125f8565b6110cf61222f565b336110d8611345565b6001600160a01b031614806110f357506110f3606633611823565b61110f5760405162461bcd60e51b81526004016106cf90615164565b60005b838110156111cc57600085858381811061112e5761112e615259565b9050602002013590506000811180156111495750606c548111155b6111655760405162461bcd60e51b81526004016106cf9061530b565b600061117082611ce6565b6001600160a01b0316146111c35760405162461bcd60e51b815260206004820152601a6024820152792a37b5b2b71031b932b0ba32b210313c9032bc3a32b739b4b7b760311b60448201526064016106cf565b50600101611112565b506111dd6000878787878787612612565b6111e76001606555565b505050505050565b6111f7611dd7565b611202606682611823565b6107755760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a36109ee6066826129ba565b61124f611dd7565b61125960006129cf565b565b611263612496565b61086b8383836124ec565b606061127a606e61212c565b6001600160401b0381111561129157611291614a49565b6040519080825280602002602001820160405280156112ba578160200160208202803683370190505b50905060005b6112ca606e61212c565b811015610b81576112dc606e82612136565b8282815181106112ee576112ee615259565b6001600160a01b03909216602092830291909101909101526001016112c0565b606061131861222f565b611320612496565b61132f33888888888888612a21565b905061133b6001606555565b9695505050505050565b6033546001600160a01b031690565b606060698054610787906151a8565b3361136c611345565b6001600160a01b031614806113875750611387606633611823565b6113a35760405162461bcd60e51b81526004016106cf90615164565b6109ee8282612e68565b6109ee338383612e9d565b336113c1611345565b6001600160a01b031614806113dc57506113dc606633611823565b6113f85760405162461bcd60e51b81526004016106cf90615164565b8281146114175760405162461bcd60e51b81526004016106cf9061529e565b60005b838110156108bd5761146785858381811061143757611437615259565b9050602002013584848481811061145057611450615259565b905060200281019061146291906152c5565b611bfb565b60010161141a565b611477612496565b6107753382612f7d565b3361148a611345565b6001600160a01b031614806114a557506114a5606633611823565b6114c15760405162461bcd60e51b81526004016106cf90615164565b6108bd8585858585612142565b60606106fd82612ff5565b6060806114e583613007565b91509150915091565b336114f7611345565b6001600160a01b031614806115125750611512606633611823565b61152e5760405162461bcd60e51b81526004016106cf90615164565b610775816133b5565b61153f61222f565b611547612496565b60005b838110156115de573361157486868481811061156857611568615259565b90506020020135611ce6565b6001600160a01b0316146115d65760405162461bcd60e51b815260206004820152602360248201527f546f6b656e206e6f742063726561746564206279207468697320657874656e7360448201526234b7b760e91b60648201526084016106cf565b60010161154a565b506111dd33878787878787612612565b6115f6612496565b61086b8383836125ee565b6001600160a01b039182166000908152606b6020908152604080832093909416825291909152205460ff1690565b33611638611345565b6001600160a01b031614806116535750611653606633611823565b61166f5760405162461bcd60e51b81526004016106cf90615164565b6109ee82826133f6565b6001600160a01b03851633148061169557506116958533611601565b6116b15760405162461bcd60e51b81526004016106cf9061520b565b6108bd858585858561351f565b6116c6611dd7565b6001600160a01b03811661172b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106cf565b610775816129cf565b606061173e61222f565b33611747611345565b6001600160a01b031614806117625750611762606633611823565b61177e5760405162461bcd60e51b81526004016106cf90615164565b61132f6000888888888888612a21565b60006001600160e01b031982166301f4921160e61b14806106fd57506106fd82613649565b60006001600160e01b03198216636cdb3d1360e11b148061071d57506001600160e01b031982166303a24d0760e21b14806106fd57506106fd825b60006001600160e01b03198216632a9f3abf60e11b14806106fd57506301ffc9a760e01b6001600160e01b03198316146106fd565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6001600160a01b0381161580159061186957506001600160a01b0381163014155b6118b15760405162461bcd60e51b815260206004820152601960248201527821b0b73737ba10313630b1b5b634b9ba103cb7bab939b2b63360391b60448201526064016106cf565b6118bc606e82611823565b156119045760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3611902606e82611e36565b505b61190f607082611823565b6107755760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a36109ee6070826129ba565b60606000821180156119685750606c548211155b6119845760405162461bcd60e51b81526004016106cf9061530b565b600061198f83611ce6565b905061199c607082611823565b156119b95760405162461bcd60e51b81526004016106cf906151dc565b600083815260756020526040902080546119d2906151a8565b159050611aec576001600160a01b038116600090815260746020526040902080546119fc906151a8565b159050611a4d576001600160a01b038116600090815260746020908152604080832086845260758352928190209051611a369392016153a5565b604051602081830303815290604052915050919050565b60008381526075602052604090208054611a66906151a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a92906151a8565b8015611adf5780601f10611ab457610100808354040283529160200191611adf565b820191906000526020600020905b815481529060010190602001808311611ac257829003601f168201915b5050505050915050919050565b611afd8163e9dc637560e01b6136fa565b15611b755760405163e9dc637560e01b81526001600160a01b0382169063e9dc637590611b309030908790600401614a30565b600060405180830381865afa158015611b4d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184191908101906153c2565b6001600160a01b03811660009081526073602052604090205460ff16611bc7576001600160a01b0381166000908152607260205260409020611bb684613716565b604051602001611a36929190615439565b6001600160a01b03811660009081526072602052604090208054611a66906151a8565b50919050565b606061184182613007565b600083118015611c0d5750606c548311155b8015611c2a57506000611c1f84611ce6565b6001600160a01b0316145b611c465760405162461bcd60e51b81526004016106cf9061530b565b6000838152607560205260409020610bd38284836154b9565b611c6b848484846137a8565b6000858152607760205260408120611c829161471e565b611ca184848484607760008b815260200190815260200160002061384d565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee85858585604051611cd794939291906155a4565b60405180910390a25050505050565b6000908152607a60205260409020546001600160a01b031690565b600080600080611d1086613007565b91509150600182511115611d655760405162461bcd60e51b815260206004820152601c60248201527b26b7b932903a3430b71018903937bcb0b63a3c903932b1b2b4bb32b960211b60448201526064016106cf565b8151600003611d7c5730600093509350505061098e565b81600081518110611d8f57611d8f615259565b60200260200101516127108683600081518110611dae57611dae615259565b6020026020010151611dc09190615607565b611dca919061561e565b9350935050509250929050565b33611de0611345565b6001600160a01b0316146112595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106cf565b6000611841836001600160a01b038416613908565b8151835114611e6c5760405162461bcd60e51b81526004016106cf90615640565b6001600160a01b038416611e925760405162461bcd60e51b81526004016106cf90615688565b33611ea18187878787876139fb565b60005b8451811015611f8a576000858281518110611ec157611ec1615259565b602002602001015190506000858381518110611edf57611edf615259565b6020908102919091018101516000848152606a835260408082206001600160a01b038e168352909352919091205490915081811015611f305760405162461bcd60e51b81526004016106cf906156cd565b6000838152606a602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611f6f908490615717565b9250508190555050505080611f8390615285565b9050611ea4565b50846001600160a01b0316866001600160a01b0316826001600160a01b0316600080516020615d438339815191528787604051611fc892919061572a565b60405180910390a46111e7818787878787613a07565b6000805260726020527fb5ad54240dc61c51d3a3e8d3f925722e010966ae263d67344c5fb60bddebddae61086b8284836154b9565b61201e607082611823565b156107755760405162461bcd60e51b81526004016106cf906151dc565b6001600160a01b03841630148015906120615750612061846001600160a01b0316612529565b6120975760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b60448201526064016106cf565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b03841660009081526072602052604090206120f08385836154b9565b506001600160a01b0384166000908152607360205260409020805460ff1916821515179055612120606e856129ba565b50610bd3846001612f7d565b60006106fd825490565b60006118418383613b69565b61214e848484846137a8565b6001600160a01b038516600090815260766020526040812061216f9161471e565b6121a084848484607660008b6001600160a01b03166001600160a01b0316815260200190815260200160002061384d565b6001600160a01b0385166121f0577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b848484846040516121e394939291906155a4565b60405180910390a16108bd565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f85858585604051611cd794939291906155a4565b6002606554036122815760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106cf565b6002606555565b612293838383613b93565b6000828152607b6020526040812080548392906122b190849061573d565b9091555050505050565b6122c6838383613c9d565b60005b8251811015610bd3578181815181106122e4576122e4615259565b6020026020010151607b600085848151811061230257612302615259565b602002602001015181526020019081526020016000206000828254612327919061573d565b90915550506001016122c9565b826123515760405162461bcd60e51b81526004016106cf9061529e565b6000607a60008686600081811061236a5761236a615259565b602090810292909201358352508101919091526040016000908120546001600160a01b031691505b8481101561240257816001600160a01b0316607a60008888858181106123ba576123ba615259565b60209081029290920135835250810191909152604001600020546001600160a01b0316146123fa5760405162461bcd60e51b81526004016106cf90615750565b600101612392565b506001600160a01b038116156111e757612423816303dc6f6560e51b6136fa565b156111e7576040516303dc6f6560e51b81526001600160a01b03821690637b8deca09061245c9089908990899089908990600401615786565b600060405180830381600087803b15801561247657600080fd5b505af115801561248a573d6000803e3d6000fd5b50505050505050505050565b6124a1606e33611823565b6112595760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba103132903932b3b4b9ba32b932b21032bc3a32b739b4b7b760211b60448201526064016106cf565b3360009081526072602052604090206125068385836154b9565b50336000908152607360205260409020805460ff19169115159190911790555050565b6001600160a01b03163b151590565b600054610100900460ff1661255f5760405162461bcd60e51b81526004016106cf906157be565b6109ee8282613e2a565b600054610100900460ff166125905760405162461bcd60e51b81526004016106cf906157be565b611259613e6a565b606d80546001600160a01b0319166001600160a01b0383161790556040517f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f906125e39083906149fa565b60405180910390a150565b33611c1f84611ce6565b33600090815260746020526040902061086b8284836154b9565b6001600160a01b038716156126bf576126bf86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250613e9a92505050565b6001851480156126cf5750600183145b80156126db5750600181145b1561275c57612757868660008181106126f6576126f6615259565b905060200201602081019061270b91906147ca565b8585600081811061271e5761271e615259565b905060200201358484600081811061273857612738615259565b6040805160008152602080820190925291029290920135919050613f29565b6129b1565b60018514801561276b57508281145b15612835576127578686600081811061278657612786615259565b905060200201602081019061279b91906147ca565b8585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201829052509250612805915050565b6040519080825280601f01601f19166020018201604052801561282f576020820181803683370190505b50613f5e565b6001831480156128455750600181145b156128ba5760005b858110156128b4576128ac87878381811061286a5761286a615259565b905060200201602081019061287f91906147ca565b8686600081811061289257612892615259565b905060200201358585600081811061273857612738615259565b60010161284d565b506129b1565b6001831480156128c957508481145b156129375760005b858110156128b45761292f8787838181106128ee576128ee615259565b905060200201602081019061290391906147ca565b8686600081811061291657612916615259565b9050602002013585858581811061273857612738615259565b6001016128d1565b848314801561294557508481145b156129995760005b858110156128b45761299187878381811061296a5761296a615259565b905060200201602081019061297f91906147ca565b86868481811061291657612916615259565b60010161294d565b60405162461bcd60e51b81526004016106cf9061529e565b50505050505050565b6000611841836001600160a01b038416613fd8565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606001861115612a8757604080516001808252818301909252906020808301908036833701905050905060018211801590612a6657506001841480612a6657508584145b612a825760405162461bcd60e51b81526004016106cf9061529e565b612af3565b836001600160401b03811115612a9f57612a9f614a49565b604051908082528060200260200182016040528015612ac8578160200160208202803683370190505b509050811580612ad757508382145b612af35760405162461bcd60e51b81526004016106cf9061529e565b60005b8151811015612b6a57606c60008154612b0e90615285565b90915550606c548251839083908110612b2957612b29615259565b602090810291909101810191909152606c546000908152607a9091526040902080546001600160a01b0319166001600160a01b038b16179055600101612af6565b506001600160a01b03881615612bea57612bea87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82528794509092508a918a91829190850190849080828437600092019190915250613e9a92505050565b600186148015612bfb575080516001145b15612c5e57612c5987876000818110612c1657612c16615259565b9050602002016020810190612c2b91906147ca565b82600081518110612c3e57612c3e615259565b60200260200101518787600081811061273857612738615259565b612db0565b6001861115612d4b576001849003612ce15760005b86811015612cdb57612cd3888883818110612c9057612c90615259565b9050602002016020810190612ca591906147ca565b83600081518110612cb857612cb8615259565b60200260200101518888600081811061273857612738615259565b600101612c73565b50612db0565b60005b86811015612cdb57612d43888883818110612d0157612d01615259565b9050602002016020810190612d1691906147ca565b83600081518110612d2957612d29615259565b602002602001015188888581811061273857612738615259565b600101612ce4565b612db087876000818110612d6157612d61615259565b9050602002016020810190612d7691906147ca565b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509250612805915050565b60005b8151811015612e5c578281108015612df057506000848483818110612dda57612dda615259565b9050602002810190612dec91906152c5565b9050115b15612e5457838382818110612e0757612e07615259565b9050602002810190612e1991906152c5565b60756000858581518110612e2f57612e2f615259565b602002602001015181526020019081526020016000209182612e529291906154b9565b505b600101612db3565b50979650505050505050565b6000805260746020527fccdf39d850e26d5964b24c5391eecfa7a13a375488d6de2101d279419f39a53761086b8284836154b9565b816001600160a01b0316836001600160a01b031603612f105760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016106cf565b6001600160a01b038381166000818152606b6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612f91826001620e90cb60e41b03196136fa565b156109ee576001600160a01b038216600081815260786020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b606061300082613007565b5092915050565b606080600060776000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561308957600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff168183015282526001909201910161303f565b50505050905080516000036131d65760006130a385611ce6565b90506001600160a01b038116156131d4576130c581634e53ee3d60e11b6136fa565b1561315057604051634e53ee3d60e11b81526001600160a01b03821690639ca7dc7a906130f89030908990600401614a30565b600060405180830381865afa158015613115573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261313d919081019061586f565b8151919550935015613150575050915091565b6001600160a01b038116600090815260766020908152604080832080548251818502810185019093528083529193909284015b828210156131cd57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613183565b5050505091505b505b8051600003613279576000808052607660209081527fafbc767fed27552cbeceb3d11150dacedabc53b0cc52ac5aa6285a747a1819588054604080518285028101850190915281815293919290919084015b8282101561327257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613228565b5050505090505b8051156133af5780516001600160401b0381111561329957613299614a49565b6040519080825280602002602001820160405280156132c2578160200160208202803683370190505b50925080516001600160401b038111156132de576132de614a49565b604051908082528060200260200182016040528015613307578160200160208202803683370190505b50915060005b81518110156133ad5781818151811061332857613328615259565b60200260200101516000015184828151811061334657613346615259565b60200260200101906001600160a01b031690816001600160a01b03168152505081818151811061337857613378615259565b60200260200101516020015161ffff1683828151811061339a5761339a615259565b602090810291909101015260010161330d565b505b50915091565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a36109ee606e82611e36565b613401606e83611823565b6134415760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b21032bc3a32b739b4b7b760791b60448201526064016106cf565b6001600160a01b03811615806134635750613463816378ea2a9760e11b6136fa565b6134a15760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016106cf565b6001600160a01b038281166000908152607960205260409020548116908216146109ee576001600160a01b0382811660008181526079602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b6001600160a01b0384166135455760405162461bcd60e51b81526004016106cf90615688565b33600061355185614027565b9050600061355e85614027565b905061356e8389898585896139fb565b6000868152606a602090815260408083206001600160a01b038c168452909152902054858110156135b15760405162461bcd60e51b81526004016106cf906156cd565b6000878152606a602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906135f0908490615717565b909155505060408051888152602081018890526001600160a01b03808b16928c82169291881691600080516020615d63833981519152910160405180910390a461363e848a8a8a8a8a614072565b505050505050505050565b60006001600160e01b031982166314d9799760e21b148061367a57506001600160e01b031982166328f10a2160e01b145b806136895750613689826117b3565b806136a457506001600160e01b03198216635d9dd7eb60e11b145b806136bf57506001600160e01b03198216632dde656160e21b145b806136da57506001600160e01b031982166335681b5360e21b145b806106fd57506001600160e01b0319821663152a902d60e11b1492915050565b600061370583614134565b801561184157506118418383614167565b60606000613723836141f0565b60010190506000816001600160401b0381111561374257613742614a49565b6040519080825280601f01601f19166020018201604052801561376c576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461377657509392505050565b8281146137c75760405162461bcd60e51b81526004016106cf9061529e565b6000805b82811015613801578383828181106137e5576137e5615259565b90506020020135826137f79190615717565b91506001016137cb565b5061271081106108bd5760405162461bcd60e51b8152602060048201526017602482015276496e76616c696420746f74616c20726f79616c7469657360481b60448201526064016106cf565b60005b828110156111e75781604051806040016040528088888581811061387657613876615259565b905060200201602081019061388b91906147ca565b6001600160a01b031681526020018686858181106138ab576138ab615259565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b039091161791909117905501613850565b600081815260018301602052604081205480156139f157600061392c60018361573d565b85549091506000906139409060019061573d565b90508181146139a557600086600001828154811061396057613960615259565b906000526020600020015490508087600001848154811061398357613983615259565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806139b6576139b6615934565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106fd565b60009150506106fd565b6111e7858585856142c6565b613a19846001600160a01b0316612529565b156111e75760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190613a52908990899088908890889060040161594a565b6020604051808303816000875af1925050508015613a8d575060408051601f3d908101601f19168201909252613a8a9181019061599c565b60015b613b3957613a996159b9565b806308c379a003613ad25750613aad6159d5565b80613ab85750613ad4565b8060405162461bcd60e51b81526004016106cf9190614837565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016106cf565b6001600160e01b0319811663bc197c8160e01b146129b15760405162461bcd60e51b81526004016106cf90615a5e565b6000826000018281548110613b8057613b80615259565b9060005260206000200154905092915050565b6001600160a01b038316613bb95760405162461bcd60e51b81526004016106cf90615aa6565b336000613bc584614027565b90506000613bd284614027565b9050613bf2838760008585604051806020016040528060008152506139fb565b6000858152606a602090815260408083206001600160a01b038a16845290915290205484811015613c355760405162461bcd60e51b81526004016106cf90615ae9565b6000868152606a602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a9052909290881691600080516020615d63833981519152910160405180910390a46040805160208101909152600090526129b1565b6001600160a01b038316613cc35760405162461bcd60e51b81526004016106cf90615aa6565b8051825114613ce45760405162461bcd60e51b81526004016106cf90615640565b6000339050613d07818560008686604051806020016040528060008152506139fb565b60005b8351811015613dcf576000848281518110613d2757613d27615259565b602002602001015190506000848381518110613d4557613d45615259565b6020908102919091018101516000848152606a835260408082206001600160a01b038c168352909352919091205490915081811015613d965760405162461bcd60e51b81526004016106cf90615ae9565b6000928352606a602090815260408085206001600160a01b038b1686529091529092209103905580613dc781615285565b915050613d0a565b5060006001600160a01b0316846001600160a01b0316826001600160a01b0316600080516020615d438339815191528686604051613e0e92919061572a565b60405180910390a4604080516020810190915260009052610bd3565b600054610100900460ff16613e515760405162461bcd60e51b81526004016106cf906157be565b6068613e5d8382615b2d565b50606961086b8282615b2d565b600054610100900460ff16613e915760405162461bcd60e51b81526004016106cf906157be565b611259336129cf565b336000908152607960205260409020546001600160a01b03161561086b5733600081815260796020526040908190205490516378ea2a9760e11b81526001600160a01b039091169163f1d4552e91613efb9190879087908790600401615be6565b600060405180830381600087803b158015613f1557600080fd5b505af11580156129b1573d6000803e3d6000fd5b613f3584848484614505565b6000838152607b602052604081208054849290613f53908490615717565b909155505050505050565b613f6a848484846145d5565b60005b83518110156108bd57828181518110613f8857613f88615259565b6020026020010151607b6000868481518110613fa657613fa6615259565b602002602001015181526020019081526020016000206000828254613fcb9190615717565b9091555050600101613f6d565b600081815260018301602052604081205461401f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106fd565b5060006106fd565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061406157614061615259565b602090810291909101015292915050565b614084846001600160a01b0316612529565b156111e75760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906140bd9089908990889088908890600401615c30565b6020604051808303816000875af19250505080156140f8575060408051601f3d908101601f191682019092526140f59181019061599c565b60015b61410457613a996159b9565b6001600160e01b0319811663f23a6e6160e01b146129b15760405162461bcd60e51b81526004016106cf90615a5e565b6000614147826301ffc9a760e01b614167565b80156106fd5750614160826001600160e01b0319614167565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156141d9575060208210155b80156141e55750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061422f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310614259576904ee2d6d415b85acef8160201b830492506020015b662386f26fc10000831061427757662386f26fc10000830492506010015b6305f5e100831061428f576305f5e100830492506008015b61271083106142a357612710830492506004015b606483106142b5576064830492506002015b600a83106106fd5760010192915050565b6001600160a01b03841615610bd3576000607a6000846000815181106142ee576142ee615259565b6020026020010151815260200190815260200160002060009054906101000a90046001600160a01b0316905060005b835181101561438f57816001600160a01b0316607a600086848151811061434657614346615259565b6020908102919091018101518252810191909152604001600020546001600160a01b0316146143875760405162461bcd60e51b81526004016106cf90615750565b60010161431d565b506001600160a01b038116158015906143c057506001600160a01b03811660009081526078602052604090205460ff165b1561445d5760405163e483517760e01b81526001600160a01b0382169063e4835177906143f99033908990899089908990600401615c6a565b6020604051808303816000875af1158015614418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061443c9190615cb0565b6144585760405162461bcd60e51b81526004016106cf90615ccd565b6108bd565b606d546001600160a01b0316156108bd57606d5460405163e483517760e01b81526001600160a01b039091169063e4835177906144a69033908990899089908990600401615c6a565b6020604051808303816000875af11580156144c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144e99190615cb0565b6108bd5760405162461bcd60e51b81526004016106cf90615ccd565b6001600160a01b03841661452b5760405162461bcd60e51b81526004016106cf90615d01565b33600061453785614027565b9050600061454485614027565b9050614555836000898585896139fb565b6000868152606a602090815260408083206001600160a01b038b16845290915281208054879290614587908490615717565b909155505060408051878152602081018790526001600160a01b03808a169260009291871691600080516020615d63833981519152910160405180910390a46129b183600089898989614072565b6001600160a01b0384166145fb5760405162461bcd60e51b81526004016106cf90615d01565b815183511461461c5760405162461bcd60e51b81526004016106cf90615640565b3361462c816000878787876139fb565b60005b84518110156146c85783818151811061464a5761464a615259565b6020026020010151606a600087848151811061466857614668615259565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546146b09190615717565b909155508190506146c081615285565b91505061462f565b50846001600160a01b031660006001600160a01b0316826001600160a01b0316600080516020615d43833981519152878760405161470792919061572a565b60405180910390a46108bd81600087878787613a07565b508054600082559060005260206000209081019061077591905b80821115610b815780546001600160b01b0319168155600101614738565b6001600160a01b038116811461077557600080fd5b6000806040838503121561477e57600080fd5b823561478981614756565b946020939093013593505050565b6001600160e01b03198116811461077557600080fd5b6000602082840312156147bf57600080fd5b813561184181614797565b6000602082840312156147dc57600080fd5b813561184181614756565b60005b838110156148025781810151838201526020016147ea565b50506000910152565b600081518084526148238160208601602086016147e7565b601f01601f19169290920160200192915050565b602081526000611841602083018461480b565b60006020828403121561485c57600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561489357815187529582019590820190600101614877565b509495945050505050565b6020815260006118416020830184614863565b60008083601f8401126148c357600080fd5b5081356001600160401b038111156148da57600080fd5b60208301915083602082850101111561098e57600080fd5b60008060006040848603121561490757600080fd5b8335925060208401356001600160401b0381111561492457600080fd5b614930868287016148b1565b9497909650939450505050565b60008083601f84011261494f57600080fd5b5081356001600160401b0381111561496657600080fd5b6020830191508360208260051b850101111561098e57600080fd5b60008060008060006060868803121561499957600080fd5b8535945060208601356001600160401b03808211156149b757600080fd5b6149c389838a0161493d565b909650945060408801359150808211156149dc57600080fd5b506149e98882890161493d565b969995985093965092949392505050565b6001600160a01b0391909116815260200190565b60008060408385031215614a2157600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715614a8457614a84614a49565b6040525050565b60006001600160401b03821115614aa457614aa4614a49565b5060051b60200190565b600082601f830112614abf57600080fd5b81356020614acc82614a8b565b604051614ad98282614a5f565b83815260059390931b8501820192828101915086841115614af957600080fd5b8286015b84811015614b145780358352918301918301614afd565b509695505050505050565b60006001600160401b03821115614b3857614b38614a49565b50601f01601f191660200190565b600082601f830112614b5757600080fd5b8135614b6281614b1f565b604051614b6f8282614a5f565b828152856020848701011115614b8457600080fd5b82602086016020830137600092810160200192909252509392505050565b600080600080600060a08688031215614bba57600080fd5b8535614bc581614756565b94506020860135614bd581614756565b935060408601356001600160401b0380821115614bf157600080fd5b614bfd89838a01614aae565b94506060880135915080821115614c1357600080fd5b614c1f89838a01614aae565b93506080880135915080821115614c3557600080fd5b50614c4288828901614b46565b9150509295509295909350565b60008060208385031215614c6257600080fd5b82356001600160401b03811115614c7857600080fd5b614c84858286016148b1565b90969095509350505050565b600080600060408486031215614ca557600080fd5b8335614cb081614756565b925060208401356001600160401b0381111561492457600080fd5b600081518084526020808501945080840160005b838110156148935781516001600160a01b031687529582019590820190600101614cdf565b6020815260006118416020830184614ccb565b60008060008060408587031215614d2d57600080fd5b84356001600160401b0380821115614d4457600080fd5b614d508883890161493d565b90965094506020870135915080821115614d6957600080fd5b50614d768782880161493d565b95989497509550505050565b600080600080600060608688031215614d9a57600080fd5b8535614da581614756565b945060208601356001600160401b03808211156149b757600080fd5b801515811461077557600080fd5b60008060008060608587031215614de557600080fd5b8435614df081614756565b935060208501356001600160401b03811115614e0b57600080fd5b614e17878288016148b1565b9094509250506040850135614e2b81614dc1565b939692955090935050565b60008060408385031215614e4957600080fd5b82356001600160401b0380821115614e6057600080fd5b614e6c86838701614b46565b93506020850135915080821115614e8257600080fd5b50614e8f85828601614b46565b9150509250929050565b60008060408385031215614eac57600080fd5b82356001600160401b0380821115614ec357600080fd5b818501915085601f830112614ed757600080fd5b81356020614ee482614a8b565b604051614ef18282614a5f565b83815260059390931b8501820192828101915089841115614f1157600080fd5b948201945b83861015614f38578535614f2981614756565b82529482019490820190614f16565b96505086013592505080821115614f4e57600080fd5b50614e8f85828601614aae565b60008060008060008060608789031215614f7457600080fd5b86356001600160401b0380821115614f8b57600080fd5b614f978a838b0161493d565b90985096506020890135915080821115614fb057600080fd5b614fbc8a838b0161493d565b90965094506040890135915080821115614fd557600080fd5b50614fe289828a0161493d565b979a9699509497509295939492505050565b60008060006040848603121561500957600080fd5b83356001600160401b0381111561501f57600080fd5b61502b868287016148b1565b909450925050602084013561503f81614dc1565b809150509250925092565b6000806040838503121561505d57600080fd5b823561506881614756565b9150602083013561507881614dc1565b809150509250929050565b60006020828403121561509557600080fd5b813561184181614dc1565b6040815260006150b36040830185614ccb565b82810360208401526150c58185614863565b95945050505050565b600080604083850312156150e157600080fd5b82356150ec81614756565b9150602083013561507881614756565b600080600080600060a0868803121561511457600080fd5b853561511f81614756565b9450602086013561512f81614756565b9350604086013592506060860135915060808601356001600160401b0381111561515857600080fd5b614c4288828901614b46565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c908216806151bc57607f821691505b602082108103611bea57634e487b7160e01b600052602260045260246000fd5b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016152975761529761526f565b5060010190565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b6000808335601e198436030181126152dc57600080fd5b8301803591506001600160401b038211156152f657600080fd5b60200191503681900382131561098e57600080fd5b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b6000815461533f816151a8565b60018281168015615357576001811461536c5761539b565b60ff198416875282151583028701945061539b565b8560005260208060002060005b858110156153925781548a820152908401908201615379565b50505082870194505b5050505092915050565b60006153ba6153b48386615332565b84615332565b949350505050565b6000602082840312156153d457600080fd5b81516001600160401b038111156153ea57600080fd5b8201601f810184136153fb57600080fd5b805161540681614b1f565b6040516154138282614a5f565b82815286602084860101111561542857600080fd5b61133b8360208301602087016147e7565b60006154458285615332565b83516154558183602088016147e7565b01949350505050565b601f82111561086b57600081815260208120601f850160051c810160208610156154855750805b601f850160051c820191505b818110156111e757828155600101615491565b600019600383901b1c191660019190911b1790565b6001600160401b038311156154d0576154d0614a49565b6154e4836154de83546151a8565b8361545e565b6000601f84116001811461551257600085156155005750838201355b61550a86826154a4565b8455506108bd565b600083815260209020601f19861690835b828110156155435786850135825560209485019460019092019101615523565b50868210156155605760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835260006001600160fb1b0383111561558b57600080fd5b8260051b80836020870137939093016020019392505050565b6040808252810184905260008560608301825b878110156155e75782356155ca81614756565b6001600160a01b03168252602092830192909101906001016155b7565b5083810360208501526155fb818688615572565b98975050505050505050565b80820281158282048414176106fd576106fd61526f565b60008261563b57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b808201808211156106fd576106fd61526f565b6040815260006150b36040830185614863565b818103818111156106fd576106fd61526f565b6020808252601c908201527b4d69736d61746368656420746f6b656e206f726967696e61746f727360201b604082015260600190565b6001600160a01b03861681526060602082018190526000906157ab9083018688615572565b82810360408401526155fb818587615572565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082601f83011261581a57600080fd5b8151602061582782614a8b565b6040516158348282614a5f565b83815260059390931b850182019282810191508684111561585457600080fd5b8286015b84811015614b145780518352918301918301615858565b6000806040838503121561588257600080fd5b82516001600160401b038082111561589957600080fd5b818501915085601f8301126158ad57600080fd5b815160206158ba82614a8b565b6040516158c78282614a5f565b83815260059390931b85018201928281019150898411156158e757600080fd5b948201945b8386101561590e5785516158ff81614756565b825294820194908201906158ec565b9188015191965090935050508082111561592757600080fd5b50614e8f85828601615809565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0386811682528516602082015260a06040820181905260009061597690830186614863565b82810360608401526159888186614863565b905082810360808401526155fb818561480b565b6000602082840312156159ae57600080fd5b815161184181614797565b600060033d11156159d25760046000803e5060005160e01c5b90565b600060443d10156159e35790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715615a1257505050505090565b8285019150815181811115615a2a5750505050505090565b843d8701016020828501011115615a445750505050505090565b615a5360208286010187614a5f565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b81516001600160401b03811115615b4657615b46614a49565b615b5a81615b5484546151a8565b8461545e565b602080601f831160018114615b895760008415615b775750858301515b615b8185826154a4565b8655506111e7565b600085815260208120601f198616915b82811015615bb857888601518255948401946001909101908401615b99565b5085821015615bd65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385168152608060208201819052600090615c0a90830186614ccb565b8281036040840152615c1c8186614863565b905082810360608401526141e58185614863565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906141e59083018461480b565b6001600160a01b03868116825285811660208301528416604082015260a060608201819052600090615c9e90830185614863565b82810360808401526155fb8185614863565b600060208284031215615cc257600080fd5b815161184181614dc1565b6020808252601a9082015279457874656e73696f6e20617070726f76616c206661696c75726560301b604082015260600190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b60608201526080019056fe4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fbc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62a26469706673582212203bb6561e4522beada737f8817f0e51e78950d3aad7920f1f8e399ecd8e9ac26964736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061026b5760003560e01c8063695c96e61161014d578063695c96e6146104a95780636d73e669146104bc578063715018a6146104cf57806382dcc0c8146104d757806383b7db63146104ea5780638c6e8472146104f25780638da5cb5b1461050557806395d89b411461050d57806399e0dd7c14610515578063a22cb46514610528578063aafb2d441461053b578063ac0c8cfa1461054e578063b0fe87c914610561578063b9c4d9fb14610574578063bb3bafd614610587578063bd85b039146105a8578063ce8aee9d146105c8578063d5a06d4c14610587578063e6c884dc146105db578063e92a89f6146105ee578063e985e9c514610601578063f0cdc49914610614578063f242432a14610627578063f2fde38b1461063a578063feeb5a9a1461064d578063ffa1ad741461066057600080fd5b8062fdd58e1461027057806301ffc9a71461029657806302e7afb7146102b957806306fdde03146102ce5780630e89341c146102e35780630ebd4c7f146102f6578063162094c41461031657806320e4afe21461032957806322f374d01461033c578063239be3171461035657806324d7806c146103695780632a55205a1461037c5780632d3456701461039d5780632eb2c2d6146103b057806330176e13146103c35780633071a0f9146103d657806331ae450b146103e9578063332dd1ae146103fe5780633db0f8ab146104115780633e6134b8146104245780633f0f37f6146104375780634cd88b761461044a5780634e1273f41461045d578063596798ad1461047057806361e5bc6b1461048357806366d1e9d014610496575b600080fd5b61028361027e36600461476b565b610668565b6040519081526020015b60405180910390f35b6102a96102a43660046147ad565b610703565b604051901515815260200161028d565b6102cc6102c73660046147ca565b61072c565b005b6102d6610778565b60405161028d9190614837565b6102d66102f136600461484a565b61080a565b61030961030436600461484a565b610815565b60405161028d919061489e565b6102cc6103243660046148f2565b610820565b6102cc610337366004614981565b610870565b606d546001600160a01b03165b60405161028d91906149fa565b61034961036436600461484a565b6108c4565b6102a96103773660046147ca565b61094d565b61038f61038a366004614a0e565b61097c565b60405161028d929190614a30565b6102cc6103ab3660046147ca565b610995565b6102cc6103be366004614ba2565b6109f2565b6102cc6103d1366004614c4f565b610a37565b6102cc6103e4366004614c90565b610a81565b6103f1610ad7565b60405161028d9190614d04565b6102cc61040c366004614d17565b610b85565b6102cc61041f366004614d82565b610bd9565b6102cc610432366004614c4f565b610d38565b6102cc610445366004614dcf565b610d4c565b6102cc610458366004614e36565b610da1565b61030961046b366004614e99565b610ec4565b6102cc61047e3660046147ca565b610fed565b6102cc610491366004614d17565b611036565b6102cc6104a4366004614c4f565b6110b5565b6102cc6104b7366004614f5b565b6110c7565b6102cc6104ca3660046147ca565b6111ef565b6102cc611247565b6102cc6104e5366004614ff4565b61125b565b6103f161126e565b610309610500366004614f5b565b61130e565b610349611345565b6102d6611354565b6102cc610523366004614c4f565b611363565b6102cc61053636600461504a565b6113ad565b6102cc610549366004614d17565b6113b8565b6102cc61055c366004615083565b61146f565b6102cc61056f366004614d82565b611481565b6103f161058236600461484a565b6114ce565b61059a61059536600461484a565b6114d9565b60405161028d9291906150a0565b6102836105b636600461484a565b6000908152607b602052604090205490565b6102cc6105d63660046147ca565b6114ee565b6102cc6105e9366004614f5b565b611537565b6102cc6105fc3660046148f2565b6115ee565b6102a961060f3660046150ce565b611601565b6102cc6106223660046150ce565b61162f565b6102cc6106353660046150fc565b611679565b6102cc6106483660046147ca565b6116be565b61030961065b366004614f5b565b611734565b610283600381565b60006001600160a01b0383166106d85760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000818152606a602090815260408083206001600160a01b03861684529091529020545b92915050565b600061070e8261178e565b8061071d575061071d826117b3565b806106fd57506106fd826117ee565b33610735611345565b6001600160a01b031614806107505750610750606633611823565b61076c5760405162461bcd60e51b81526004016106cf90615164565b61077581611848565b50565b606060688054610787906151a8565b80601f01602080910402602001604051908101604052809291908181526020018280546107b3906151a8565b80156108005780601f106107d557610100808354040283529160200191610800565b820191906000526020600020905b8154815290600101906020018083116107e357829003601f168201915b5050505050905090565b60606106fd82611954565b60606106fd82611bf0565b33610829611345565b6001600160a01b031614806108445750610844606633611823565b6108605760405162461bcd60e51b81526004016106cf90615164565b61086b838383611bfb565b505050565b33610879611345565b6001600160a01b031614806108945750610894606633611823565b6108b05760405162461bcd60e51b81526004016106cf90615164565b6108bd8585858585611c5f565b5050505050565b60006108cf82611ce6565b90506001600160a01b0381166109205760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b60448201526064016106cf565b61092b607082611823565b156109485760405162461bcd60e51b81526004016106cf906151dc565b919050565b6000816001600160a01b0316610961611345565b6001600160a01b031614806106fd57506106fd606683611823565b6000806109898484611d01565b915091505b9250929050565b61099d611dd7565b6109a8606682611823565b156107755760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a36109ee606682611e36565b5050565b6001600160a01b038516331480610a0e5750610a0e8533611601565b610a2a5760405162461bcd60e51b81526004016106cf9061520b565b6108bd8585858585611e4b565b33610a40611345565b6001600160a01b03161480610a5b5750610a5b606633611823565b610a775760405162461bcd60e51b81526004016106cf90615164565b6109ee8282611fde565b33610a8a611345565b6001600160a01b03161480610aa55750610aa5606633611823565b610ac15760405162461bcd60e51b81526004016106cf90615164565b610aca83612013565b61086b838383600061203b565b6060610ae3606661212c565b6001600160401b03811115610afa57610afa614a49565b604051908082528060200260200182016040528015610b23578160200160208202803683370190505b50905060005b610b33606661212c565b811015610b8157610b45606682612136565b828281518110610b5757610b57615259565b6001600160a01b039092166020928302919091019091015280610b7981615285565b915050610b29565b5090565b33610b8e611345565b6001600160a01b03161480610ba95750610ba9606633611823565b610bc55760405162461bcd60e51b81526004016106cf90615164565b610bd3600085858585612142565b50505050565b610be161222f565b6001600160a01b038516331480610bfd5750610bfd8533611601565b610c495760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f7665640060448201526064016106cf565b828114610c685760405162461bcd60e51b81526004016106cf9061529e565b6001839003610cb357610cae8585856000818110610c8857610c88615259565b9050602002013584846000818110610ca257610ca2615259565b90506020020135612288565b610d21565b610d2185858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152506122bb92505050565b610d2e8585858585612334565b6108bd6001606555565b610d40612496565b6109ee828260006124ec565b33610d55611345565b6001600160a01b03161480610d705750610d70606633611823565b610d8c5760405162461bcd60e51b81526004016106cf90615164565b610d9584612013565b610bd38484848461203b565b600054610100900460ff1615808015610dc15750600054600160ff909116105b80610de25750610dd030612529565b158015610de2575060005460ff166001145b610e455760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106cf565b6000805460ff191660011790558015610e68576000805461ff0019166101001790555b610e728383612538565b610e7a612569565b801561086b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60608151835114610f295760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016106cf565b600083516001600160401b03811115610f4457610f44614a49565b604051908082528060200260200182016040528015610f6d578160200160208202803683370190505b50905060005b8451811015610fe557610fb8858281518110610f9157610f91615259565b6020026020010151858381518110610fab57610fab615259565b6020026020010151610668565b828281518110610fca57610fca615259565b6020908102919091010152610fde81615285565b9050610f73565b509392505050565b33610ff6611345565b6001600160a01b031614806110115750611011606633611823565b61102d5760405162461bcd60e51b81526004016106cf90615164565b61077581612598565b61103e612496565b82811461105d5760405162461bcd60e51b81526004016106cf9061529e565b60005b838110156108bd576110ad85858381811061107d5761107d615259565b9050602002013584848481811061109657611096615259565b90506020028101906110a891906152c5565b6125ee565b600101611060565b6110bd612496565b6109ee82826125f8565b6110cf61222f565b336110d8611345565b6001600160a01b031614806110f357506110f3606633611823565b61110f5760405162461bcd60e51b81526004016106cf90615164565b60005b838110156111cc57600085858381811061112e5761112e615259565b9050602002013590506000811180156111495750606c548111155b6111655760405162461bcd60e51b81526004016106cf9061530b565b600061117082611ce6565b6001600160a01b0316146111c35760405162461bcd60e51b815260206004820152601a6024820152792a37b5b2b71031b932b0ba32b210313c9032bc3a32b739b4b7b760311b60448201526064016106cf565b50600101611112565b506111dd6000878787878787612612565b6111e76001606555565b505050505050565b6111f7611dd7565b611202606682611823565b6107755760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a36109ee6066826129ba565b61124f611dd7565b61125960006129cf565b565b611263612496565b61086b8383836124ec565b606061127a606e61212c565b6001600160401b0381111561129157611291614a49565b6040519080825280602002602001820160405280156112ba578160200160208202803683370190505b50905060005b6112ca606e61212c565b811015610b81576112dc606e82612136565b8282815181106112ee576112ee615259565b6001600160a01b03909216602092830291909101909101526001016112c0565b606061131861222f565b611320612496565b61132f33888888888888612a21565b905061133b6001606555565b9695505050505050565b6033546001600160a01b031690565b606060698054610787906151a8565b3361136c611345565b6001600160a01b031614806113875750611387606633611823565b6113a35760405162461bcd60e51b81526004016106cf90615164565b6109ee8282612e68565b6109ee338383612e9d565b336113c1611345565b6001600160a01b031614806113dc57506113dc606633611823565b6113f85760405162461bcd60e51b81526004016106cf90615164565b8281146114175760405162461bcd60e51b81526004016106cf9061529e565b60005b838110156108bd5761146785858381811061143757611437615259565b9050602002013584848481811061145057611450615259565b905060200281019061146291906152c5565b611bfb565b60010161141a565b611477612496565b6107753382612f7d565b3361148a611345565b6001600160a01b031614806114a557506114a5606633611823565b6114c15760405162461bcd60e51b81526004016106cf90615164565b6108bd8585858585612142565b60606106fd82612ff5565b6060806114e583613007565b91509150915091565b336114f7611345565b6001600160a01b031614806115125750611512606633611823565b61152e5760405162461bcd60e51b81526004016106cf90615164565b610775816133b5565b61153f61222f565b611547612496565b60005b838110156115de573361157486868481811061156857611568615259565b90506020020135611ce6565b6001600160a01b0316146115d65760405162461bcd60e51b815260206004820152602360248201527f546f6b656e206e6f742063726561746564206279207468697320657874656e7360448201526234b7b760e91b60648201526084016106cf565b60010161154a565b506111dd33878787878787612612565b6115f6612496565b61086b8383836125ee565b6001600160a01b039182166000908152606b6020908152604080832093909416825291909152205460ff1690565b33611638611345565b6001600160a01b031614806116535750611653606633611823565b61166f5760405162461bcd60e51b81526004016106cf90615164565b6109ee82826133f6565b6001600160a01b03851633148061169557506116958533611601565b6116b15760405162461bcd60e51b81526004016106cf9061520b565b6108bd858585858561351f565b6116c6611dd7565b6001600160a01b03811661172b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106cf565b610775816129cf565b606061173e61222f565b33611747611345565b6001600160a01b031614806117625750611762606633611823565b61177e5760405162461bcd60e51b81526004016106cf90615164565b61132f6000888888888888612a21565b60006001600160e01b031982166301f4921160e61b14806106fd57506106fd82613649565b60006001600160e01b03198216636cdb3d1360e11b148061071d57506001600160e01b031982166303a24d0760e21b14806106fd57506106fd825b60006001600160e01b03198216632a9f3abf60e11b14806106fd57506301ffc9a760e01b6001600160e01b03198316146106fd565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6001600160a01b0381161580159061186957506001600160a01b0381163014155b6118b15760405162461bcd60e51b815260206004820152601960248201527821b0b73737ba10313630b1b5b634b9ba103cb7bab939b2b63360391b60448201526064016106cf565b6118bc606e82611823565b156119045760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3611902606e82611e36565b505b61190f607082611823565b6107755760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a36109ee6070826129ba565b60606000821180156119685750606c548211155b6119845760405162461bcd60e51b81526004016106cf9061530b565b600061198f83611ce6565b905061199c607082611823565b156119b95760405162461bcd60e51b81526004016106cf906151dc565b600083815260756020526040902080546119d2906151a8565b159050611aec576001600160a01b038116600090815260746020526040902080546119fc906151a8565b159050611a4d576001600160a01b038116600090815260746020908152604080832086845260758352928190209051611a369392016153a5565b604051602081830303815290604052915050919050565b60008381526075602052604090208054611a66906151a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a92906151a8565b8015611adf5780601f10611ab457610100808354040283529160200191611adf565b820191906000526020600020905b815481529060010190602001808311611ac257829003601f168201915b5050505050915050919050565b611afd8163e9dc637560e01b6136fa565b15611b755760405163e9dc637560e01b81526001600160a01b0382169063e9dc637590611b309030908790600401614a30565b600060405180830381865afa158015611b4d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184191908101906153c2565b6001600160a01b03811660009081526073602052604090205460ff16611bc7576001600160a01b0381166000908152607260205260409020611bb684613716565b604051602001611a36929190615439565b6001600160a01b03811660009081526072602052604090208054611a66906151a8565b50919050565b606061184182613007565b600083118015611c0d5750606c548311155b8015611c2a57506000611c1f84611ce6565b6001600160a01b0316145b611c465760405162461bcd60e51b81526004016106cf9061530b565b6000838152607560205260409020610bd38284836154b9565b611c6b848484846137a8565b6000858152607760205260408120611c829161471e565b611ca184848484607760008b815260200190815260200160002061384d565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee85858585604051611cd794939291906155a4565b60405180910390a25050505050565b6000908152607a60205260409020546001600160a01b031690565b600080600080611d1086613007565b91509150600182511115611d655760405162461bcd60e51b815260206004820152601c60248201527b26b7b932903a3430b71018903937bcb0b63a3c903932b1b2b4bb32b960211b60448201526064016106cf565b8151600003611d7c5730600093509350505061098e565b81600081518110611d8f57611d8f615259565b60200260200101516127108683600081518110611dae57611dae615259565b6020026020010151611dc09190615607565b611dca919061561e565b9350935050509250929050565b33611de0611345565b6001600160a01b0316146112595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106cf565b6000611841836001600160a01b038416613908565b8151835114611e6c5760405162461bcd60e51b81526004016106cf90615640565b6001600160a01b038416611e925760405162461bcd60e51b81526004016106cf90615688565b33611ea18187878787876139fb565b60005b8451811015611f8a576000858281518110611ec157611ec1615259565b602002602001015190506000858381518110611edf57611edf615259565b6020908102919091018101516000848152606a835260408082206001600160a01b038e168352909352919091205490915081811015611f305760405162461bcd60e51b81526004016106cf906156cd565b6000838152606a602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611f6f908490615717565b9250508190555050505080611f8390615285565b9050611ea4565b50846001600160a01b0316866001600160a01b0316826001600160a01b0316600080516020615d438339815191528787604051611fc892919061572a565b60405180910390a46111e7818787878787613a07565b6000805260726020527fb5ad54240dc61c51d3a3e8d3f925722e010966ae263d67344c5fb60bddebddae61086b8284836154b9565b61201e607082611823565b156107755760405162461bcd60e51b81526004016106cf906151dc565b6001600160a01b03841630148015906120615750612061846001600160a01b0316612529565b6120975760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b60448201526064016106cf565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b03841660009081526072602052604090206120f08385836154b9565b506001600160a01b0384166000908152607360205260409020805460ff1916821515179055612120606e856129ba565b50610bd3846001612f7d565b60006106fd825490565b60006118418383613b69565b61214e848484846137a8565b6001600160a01b038516600090815260766020526040812061216f9161471e565b6121a084848484607660008b6001600160a01b03166001600160a01b0316815260200190815260200160002061384d565b6001600160a01b0385166121f0577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b848484846040516121e394939291906155a4565b60405180910390a16108bd565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f85858585604051611cd794939291906155a4565b6002606554036122815760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106cf565b6002606555565b612293838383613b93565b6000828152607b6020526040812080548392906122b190849061573d565b9091555050505050565b6122c6838383613c9d565b60005b8251811015610bd3578181815181106122e4576122e4615259565b6020026020010151607b600085848151811061230257612302615259565b602002602001015181526020019081526020016000206000828254612327919061573d565b90915550506001016122c9565b826123515760405162461bcd60e51b81526004016106cf9061529e565b6000607a60008686600081811061236a5761236a615259565b602090810292909201358352508101919091526040016000908120546001600160a01b031691505b8481101561240257816001600160a01b0316607a60008888858181106123ba576123ba615259565b60209081029290920135835250810191909152604001600020546001600160a01b0316146123fa5760405162461bcd60e51b81526004016106cf90615750565b600101612392565b506001600160a01b038116156111e757612423816303dc6f6560e51b6136fa565b156111e7576040516303dc6f6560e51b81526001600160a01b03821690637b8deca09061245c9089908990899089908990600401615786565b600060405180830381600087803b15801561247657600080fd5b505af115801561248a573d6000803e3d6000fd5b50505050505050505050565b6124a1606e33611823565b6112595760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba103132903932b3b4b9ba32b932b21032bc3a32b739b4b7b760211b60448201526064016106cf565b3360009081526072602052604090206125068385836154b9565b50336000908152607360205260409020805460ff19169115159190911790555050565b6001600160a01b03163b151590565b600054610100900460ff1661255f5760405162461bcd60e51b81526004016106cf906157be565b6109ee8282613e2a565b600054610100900460ff166125905760405162461bcd60e51b81526004016106cf906157be565b611259613e6a565b606d80546001600160a01b0319166001600160a01b0383161790556040517f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f906125e39083906149fa565b60405180910390a150565b33611c1f84611ce6565b33600090815260746020526040902061086b8284836154b9565b6001600160a01b038716156126bf576126bf86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250613e9a92505050565b6001851480156126cf5750600183145b80156126db5750600181145b1561275c57612757868660008181106126f6576126f6615259565b905060200201602081019061270b91906147ca565b8585600081811061271e5761271e615259565b905060200201358484600081811061273857612738615259565b6040805160008152602080820190925291029290920135919050613f29565b6129b1565b60018514801561276b57508281145b15612835576127578686600081811061278657612786615259565b905060200201602081019061279b91906147ca565b8585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201829052509250612805915050565b6040519080825280601f01601f19166020018201604052801561282f576020820181803683370190505b50613f5e565b6001831480156128455750600181145b156128ba5760005b858110156128b4576128ac87878381811061286a5761286a615259565b905060200201602081019061287f91906147ca565b8686600081811061289257612892615259565b905060200201358585600081811061273857612738615259565b60010161284d565b506129b1565b6001831480156128c957508481145b156129375760005b858110156128b45761292f8787838181106128ee576128ee615259565b905060200201602081019061290391906147ca565b8686600081811061291657612916615259565b9050602002013585858581811061273857612738615259565b6001016128d1565b848314801561294557508481145b156129995760005b858110156128b45761299187878381811061296a5761296a615259565b905060200201602081019061297f91906147ca565b86868481811061291657612916615259565b60010161294d565b60405162461bcd60e51b81526004016106cf9061529e565b50505050505050565b6000611841836001600160a01b038416613fd8565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606001861115612a8757604080516001808252818301909252906020808301908036833701905050905060018211801590612a6657506001841480612a6657508584145b612a825760405162461bcd60e51b81526004016106cf9061529e565b612af3565b836001600160401b03811115612a9f57612a9f614a49565b604051908082528060200260200182016040528015612ac8578160200160208202803683370190505b509050811580612ad757508382145b612af35760405162461bcd60e51b81526004016106cf9061529e565b60005b8151811015612b6a57606c60008154612b0e90615285565b90915550606c548251839083908110612b2957612b29615259565b602090810291909101810191909152606c546000908152607a9091526040902080546001600160a01b0319166001600160a01b038b16179055600101612af6565b506001600160a01b03881615612bea57612bea87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82528794509092508a918a91829190850190849080828437600092019190915250613e9a92505050565b600186148015612bfb575080516001145b15612c5e57612c5987876000818110612c1657612c16615259565b9050602002016020810190612c2b91906147ca565b82600081518110612c3e57612c3e615259565b60200260200101518787600081811061273857612738615259565b612db0565b6001861115612d4b576001849003612ce15760005b86811015612cdb57612cd3888883818110612c9057612c90615259565b9050602002016020810190612ca591906147ca565b83600081518110612cb857612cb8615259565b60200260200101518888600081811061273857612738615259565b600101612c73565b50612db0565b60005b86811015612cdb57612d43888883818110612d0157612d01615259565b9050602002016020810190612d1691906147ca565b83600081518110612d2957612d29615259565b602002602001015188888581811061273857612738615259565b600101612ce4565b612db087876000818110612d6157612d61615259565b9050602002016020810190612d7691906147ca565b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509250612805915050565b60005b8151811015612e5c578281108015612df057506000848483818110612dda57612dda615259565b9050602002810190612dec91906152c5565b9050115b15612e5457838382818110612e0757612e07615259565b9050602002810190612e1991906152c5565b60756000858581518110612e2f57612e2f615259565b602002602001015181526020019081526020016000209182612e529291906154b9565b505b600101612db3565b50979650505050505050565b6000805260746020527fccdf39d850e26d5964b24c5391eecfa7a13a375488d6de2101d279419f39a53761086b8284836154b9565b816001600160a01b0316836001600160a01b031603612f105760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016106cf565b6001600160a01b038381166000818152606b6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612f91826001620e90cb60e41b03196136fa565b156109ee576001600160a01b038216600081815260786020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b606061300082613007565b5092915050565b606080600060776000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561308957600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff168183015282526001909201910161303f565b50505050905080516000036131d65760006130a385611ce6565b90506001600160a01b038116156131d4576130c581634e53ee3d60e11b6136fa565b1561315057604051634e53ee3d60e11b81526001600160a01b03821690639ca7dc7a906130f89030908990600401614a30565b600060405180830381865afa158015613115573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261313d919081019061586f565b8151919550935015613150575050915091565b6001600160a01b038116600090815260766020908152604080832080548251818502810185019093528083529193909284015b828210156131cd57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613183565b5050505091505b505b8051600003613279576000808052607660209081527fafbc767fed27552cbeceb3d11150dacedabc53b0cc52ac5aa6285a747a1819588054604080518285028101850190915281815293919290919084015b8282101561327257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613228565b5050505090505b8051156133af5780516001600160401b0381111561329957613299614a49565b6040519080825280602002602001820160405280156132c2578160200160208202803683370190505b50925080516001600160401b038111156132de576132de614a49565b604051908082528060200260200182016040528015613307578160200160208202803683370190505b50915060005b81518110156133ad5781818151811061332857613328615259565b60200260200101516000015184828151811061334657613346615259565b60200260200101906001600160a01b031690816001600160a01b03168152505081818151811061337857613378615259565b60200260200101516020015161ffff1683828151811061339a5761339a615259565b602090810291909101015260010161330d565b505b50915091565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a36109ee606e82611e36565b613401606e83611823565b6134415760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b21032bc3a32b739b4b7b760791b60448201526064016106cf565b6001600160a01b03811615806134635750613463816378ea2a9760e11b6136fa565b6134a15760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016106cf565b6001600160a01b038281166000908152607960205260409020548116908216146109ee576001600160a01b0382811660008181526079602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b6001600160a01b0384166135455760405162461bcd60e51b81526004016106cf90615688565b33600061355185614027565b9050600061355e85614027565b905061356e8389898585896139fb565b6000868152606a602090815260408083206001600160a01b038c168452909152902054858110156135b15760405162461bcd60e51b81526004016106cf906156cd565b6000878152606a602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906135f0908490615717565b909155505060408051888152602081018890526001600160a01b03808b16928c82169291881691600080516020615d63833981519152910160405180910390a461363e848a8a8a8a8a614072565b505050505050505050565b60006001600160e01b031982166314d9799760e21b148061367a57506001600160e01b031982166328f10a2160e01b145b806136895750613689826117b3565b806136a457506001600160e01b03198216635d9dd7eb60e11b145b806136bf57506001600160e01b03198216632dde656160e21b145b806136da57506001600160e01b031982166335681b5360e21b145b806106fd57506001600160e01b0319821663152a902d60e11b1492915050565b600061370583614134565b801561184157506118418383614167565b60606000613723836141f0565b60010190506000816001600160401b0381111561374257613742614a49565b6040519080825280601f01601f19166020018201604052801561376c576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461377657509392505050565b8281146137c75760405162461bcd60e51b81526004016106cf9061529e565b6000805b82811015613801578383828181106137e5576137e5615259565b90506020020135826137f79190615717565b91506001016137cb565b5061271081106108bd5760405162461bcd60e51b8152602060048201526017602482015276496e76616c696420746f74616c20726f79616c7469657360481b60448201526064016106cf565b60005b828110156111e75781604051806040016040528088888581811061387657613876615259565b905060200201602081019061388b91906147ca565b6001600160a01b031681526020018686858181106138ab576138ab615259565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b039091161791909117905501613850565b600081815260018301602052604081205480156139f157600061392c60018361573d565b85549091506000906139409060019061573d565b90508181146139a557600086600001828154811061396057613960615259565b906000526020600020015490508087600001848154811061398357613983615259565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806139b6576139b6615934565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106fd565b60009150506106fd565b6111e7858585856142c6565b613a19846001600160a01b0316612529565b156111e75760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190613a52908990899088908890889060040161594a565b6020604051808303816000875af1925050508015613a8d575060408051601f3d908101601f19168201909252613a8a9181019061599c565b60015b613b3957613a996159b9565b806308c379a003613ad25750613aad6159d5565b80613ab85750613ad4565b8060405162461bcd60e51b81526004016106cf9190614837565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016106cf565b6001600160e01b0319811663bc197c8160e01b146129b15760405162461bcd60e51b81526004016106cf90615a5e565b6000826000018281548110613b8057613b80615259565b9060005260206000200154905092915050565b6001600160a01b038316613bb95760405162461bcd60e51b81526004016106cf90615aa6565b336000613bc584614027565b90506000613bd284614027565b9050613bf2838760008585604051806020016040528060008152506139fb565b6000858152606a602090815260408083206001600160a01b038a16845290915290205484811015613c355760405162461bcd60e51b81526004016106cf90615ae9565b6000868152606a602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a9052909290881691600080516020615d63833981519152910160405180910390a46040805160208101909152600090526129b1565b6001600160a01b038316613cc35760405162461bcd60e51b81526004016106cf90615aa6565b8051825114613ce45760405162461bcd60e51b81526004016106cf90615640565b6000339050613d07818560008686604051806020016040528060008152506139fb565b60005b8351811015613dcf576000848281518110613d2757613d27615259565b602002602001015190506000848381518110613d4557613d45615259565b6020908102919091018101516000848152606a835260408082206001600160a01b038c168352909352919091205490915081811015613d965760405162461bcd60e51b81526004016106cf90615ae9565b6000928352606a602090815260408085206001600160a01b038b1686529091529092209103905580613dc781615285565b915050613d0a565b5060006001600160a01b0316846001600160a01b0316826001600160a01b0316600080516020615d438339815191528686604051613e0e92919061572a565b60405180910390a4604080516020810190915260009052610bd3565b600054610100900460ff16613e515760405162461bcd60e51b81526004016106cf906157be565b6068613e5d8382615b2d565b50606961086b8282615b2d565b600054610100900460ff16613e915760405162461bcd60e51b81526004016106cf906157be565b611259336129cf565b336000908152607960205260409020546001600160a01b03161561086b5733600081815260796020526040908190205490516378ea2a9760e11b81526001600160a01b039091169163f1d4552e91613efb9190879087908790600401615be6565b600060405180830381600087803b158015613f1557600080fd5b505af11580156129b1573d6000803e3d6000fd5b613f3584848484614505565b6000838152607b602052604081208054849290613f53908490615717565b909155505050505050565b613f6a848484846145d5565b60005b83518110156108bd57828181518110613f8857613f88615259565b6020026020010151607b6000868481518110613fa657613fa6615259565b602002602001015181526020019081526020016000206000828254613fcb9190615717565b9091555050600101613f6d565b600081815260018301602052604081205461401f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106fd565b5060006106fd565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061406157614061615259565b602090810291909101015292915050565b614084846001600160a01b0316612529565b156111e75760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906140bd9089908990889088908890600401615c30565b6020604051808303816000875af19250505080156140f8575060408051601f3d908101601f191682019092526140f59181019061599c565b60015b61410457613a996159b9565b6001600160e01b0319811663f23a6e6160e01b146129b15760405162461bcd60e51b81526004016106cf90615a5e565b6000614147826301ffc9a760e01b614167565b80156106fd5750614160826001600160e01b0319614167565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156141d9575060208210155b80156141e55750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061422f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310614259576904ee2d6d415b85acef8160201b830492506020015b662386f26fc10000831061427757662386f26fc10000830492506010015b6305f5e100831061428f576305f5e100830492506008015b61271083106142a357612710830492506004015b606483106142b5576064830492506002015b600a83106106fd5760010192915050565b6001600160a01b03841615610bd3576000607a6000846000815181106142ee576142ee615259565b6020026020010151815260200190815260200160002060009054906101000a90046001600160a01b0316905060005b835181101561438f57816001600160a01b0316607a600086848151811061434657614346615259565b6020908102919091018101518252810191909152604001600020546001600160a01b0316146143875760405162461bcd60e51b81526004016106cf90615750565b60010161431d565b506001600160a01b038116158015906143c057506001600160a01b03811660009081526078602052604090205460ff165b1561445d5760405163e483517760e01b81526001600160a01b0382169063e4835177906143f99033908990899089908990600401615c6a565b6020604051808303816000875af1158015614418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061443c9190615cb0565b6144585760405162461bcd60e51b81526004016106cf90615ccd565b6108bd565b606d546001600160a01b0316156108bd57606d5460405163e483517760e01b81526001600160a01b039091169063e4835177906144a69033908990899089908990600401615c6a565b6020604051808303816000875af11580156144c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144e99190615cb0565b6108bd5760405162461bcd60e51b81526004016106cf90615ccd565b6001600160a01b03841661452b5760405162461bcd60e51b81526004016106cf90615d01565b33600061453785614027565b9050600061454485614027565b9050614555836000898585896139fb565b6000868152606a602090815260408083206001600160a01b038b16845290915281208054879290614587908490615717565b909155505060408051878152602081018790526001600160a01b03808a169260009291871691600080516020615d63833981519152910160405180910390a46129b183600089898989614072565b6001600160a01b0384166145fb5760405162461bcd60e51b81526004016106cf90615d01565b815183511461461c5760405162461bcd60e51b81526004016106cf90615640565b3361462c816000878787876139fb565b60005b84518110156146c85783818151811061464a5761464a615259565b6020026020010151606a600087848151811061466857614668615259565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546146b09190615717565b909155508190506146c081615285565b91505061462f565b50846001600160a01b031660006001600160a01b0316826001600160a01b0316600080516020615d43833981519152878760405161470792919061572a565b60405180910390a46108bd81600087878787613a07565b508054600082559060005260206000209081019061077591905b80821115610b815780546001600160b01b0319168155600101614738565b6001600160a01b038116811461077557600080fd5b6000806040838503121561477e57600080fd5b823561478981614756565b946020939093013593505050565b6001600160e01b03198116811461077557600080fd5b6000602082840312156147bf57600080fd5b813561184181614797565b6000602082840312156147dc57600080fd5b813561184181614756565b60005b838110156148025781810151838201526020016147ea565b50506000910152565b600081518084526148238160208601602086016147e7565b601f01601f19169290920160200192915050565b602081526000611841602083018461480b565b60006020828403121561485c57600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561489357815187529582019590820190600101614877565b509495945050505050565b6020815260006118416020830184614863565b60008083601f8401126148c357600080fd5b5081356001600160401b038111156148da57600080fd5b60208301915083602082850101111561098e57600080fd5b60008060006040848603121561490757600080fd5b8335925060208401356001600160401b0381111561492457600080fd5b614930868287016148b1565b9497909650939450505050565b60008083601f84011261494f57600080fd5b5081356001600160401b0381111561496657600080fd5b6020830191508360208260051b850101111561098e57600080fd5b60008060008060006060868803121561499957600080fd5b8535945060208601356001600160401b03808211156149b757600080fd5b6149c389838a0161493d565b909650945060408801359150808211156149dc57600080fd5b506149e98882890161493d565b969995985093965092949392505050565b6001600160a01b0391909116815260200190565b60008060408385031215614a2157600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715614a8457614a84614a49565b6040525050565b60006001600160401b03821115614aa457614aa4614a49565b5060051b60200190565b600082601f830112614abf57600080fd5b81356020614acc82614a8b565b604051614ad98282614a5f565b83815260059390931b8501820192828101915086841115614af957600080fd5b8286015b84811015614b145780358352918301918301614afd565b509695505050505050565b60006001600160401b03821115614b3857614b38614a49565b50601f01601f191660200190565b600082601f830112614b5757600080fd5b8135614b6281614b1f565b604051614b6f8282614a5f565b828152856020848701011115614b8457600080fd5b82602086016020830137600092810160200192909252509392505050565b600080600080600060a08688031215614bba57600080fd5b8535614bc581614756565b94506020860135614bd581614756565b935060408601356001600160401b0380821115614bf157600080fd5b614bfd89838a01614aae565b94506060880135915080821115614c1357600080fd5b614c1f89838a01614aae565b93506080880135915080821115614c3557600080fd5b50614c4288828901614b46565b9150509295509295909350565b60008060208385031215614c6257600080fd5b82356001600160401b03811115614c7857600080fd5b614c84858286016148b1565b90969095509350505050565b600080600060408486031215614ca557600080fd5b8335614cb081614756565b925060208401356001600160401b0381111561492457600080fd5b600081518084526020808501945080840160005b838110156148935781516001600160a01b031687529582019590820190600101614cdf565b6020815260006118416020830184614ccb565b60008060008060408587031215614d2d57600080fd5b84356001600160401b0380821115614d4457600080fd5b614d508883890161493d565b90965094506020870135915080821115614d6957600080fd5b50614d768782880161493d565b95989497509550505050565b600080600080600060608688031215614d9a57600080fd5b8535614da581614756565b945060208601356001600160401b03808211156149b757600080fd5b801515811461077557600080fd5b60008060008060608587031215614de557600080fd5b8435614df081614756565b935060208501356001600160401b03811115614e0b57600080fd5b614e17878288016148b1565b9094509250506040850135614e2b81614dc1565b939692955090935050565b60008060408385031215614e4957600080fd5b82356001600160401b0380821115614e6057600080fd5b614e6c86838701614b46565b93506020850135915080821115614e8257600080fd5b50614e8f85828601614b46565b9150509250929050565b60008060408385031215614eac57600080fd5b82356001600160401b0380821115614ec357600080fd5b818501915085601f830112614ed757600080fd5b81356020614ee482614a8b565b604051614ef18282614a5f565b83815260059390931b8501820192828101915089841115614f1157600080fd5b948201945b83861015614f38578535614f2981614756565b82529482019490820190614f16565b96505086013592505080821115614f4e57600080fd5b50614e8f85828601614aae565b60008060008060008060608789031215614f7457600080fd5b86356001600160401b0380821115614f8b57600080fd5b614f978a838b0161493d565b90985096506020890135915080821115614fb057600080fd5b614fbc8a838b0161493d565b90965094506040890135915080821115614fd557600080fd5b50614fe289828a0161493d565b979a9699509497509295939492505050565b60008060006040848603121561500957600080fd5b83356001600160401b0381111561501f57600080fd5b61502b868287016148b1565b909450925050602084013561503f81614dc1565b809150509250925092565b6000806040838503121561505d57600080fd5b823561506881614756565b9150602083013561507881614dc1565b809150509250929050565b60006020828403121561509557600080fd5b813561184181614dc1565b6040815260006150b36040830185614ccb565b82810360208401526150c58185614863565b95945050505050565b600080604083850312156150e157600080fd5b82356150ec81614756565b9150602083013561507881614756565b600080600080600060a0868803121561511457600080fd5b853561511f81614756565b9450602086013561512f81614756565b9350604086013592506060860135915060808601356001600160401b0381111561515857600080fd5b614c4288828901614b46565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c908216806151bc57607f821691505b602082108103611bea57634e487b7160e01b600052602260045260246000fd5b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016152975761529761526f565b5060010190565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b6000808335601e198436030181126152dc57600080fd5b8301803591506001600160401b038211156152f657600080fd5b60200191503681900382131561098e57600080fd5b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b6000815461533f816151a8565b60018281168015615357576001811461536c5761539b565b60ff198416875282151583028701945061539b565b8560005260208060002060005b858110156153925781548a820152908401908201615379565b50505082870194505b5050505092915050565b60006153ba6153b48386615332565b84615332565b949350505050565b6000602082840312156153d457600080fd5b81516001600160401b038111156153ea57600080fd5b8201601f810184136153fb57600080fd5b805161540681614b1f565b6040516154138282614a5f565b82815286602084860101111561542857600080fd5b61133b8360208301602087016147e7565b60006154458285615332565b83516154558183602088016147e7565b01949350505050565b601f82111561086b57600081815260208120601f850160051c810160208610156154855750805b601f850160051c820191505b818110156111e757828155600101615491565b600019600383901b1c191660019190911b1790565b6001600160401b038311156154d0576154d0614a49565b6154e4836154de83546151a8565b8361545e565b6000601f84116001811461551257600085156155005750838201355b61550a86826154a4565b8455506108bd565b600083815260209020601f19861690835b828110156155435786850135825560209485019460019092019101615523565b50868210156155605760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835260006001600160fb1b0383111561558b57600080fd5b8260051b80836020870137939093016020019392505050565b6040808252810184905260008560608301825b878110156155e75782356155ca81614756565b6001600160a01b03168252602092830192909101906001016155b7565b5083810360208501526155fb818688615572565b98975050505050505050565b80820281158282048414176106fd576106fd61526f565b60008261563b57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b808201808211156106fd576106fd61526f565b6040815260006150b36040830185614863565b818103818111156106fd576106fd61526f565b6020808252601c908201527b4d69736d61746368656420746f6b656e206f726967696e61746f727360201b604082015260600190565b6001600160a01b03861681526060602082018190526000906157ab9083018688615572565b82810360408401526155fb818587615572565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082601f83011261581a57600080fd5b8151602061582782614a8b565b6040516158348282614a5f565b83815260059390931b850182019282810191508684111561585457600080fd5b8286015b84811015614b145780518352918301918301615858565b6000806040838503121561588257600080fd5b82516001600160401b038082111561589957600080fd5b818501915085601f8301126158ad57600080fd5b815160206158ba82614a8b565b6040516158c78282614a5f565b83815260059390931b85018201928281019150898411156158e757600080fd5b948201945b8386101561590e5785516158ff81614756565b825294820194908201906158ec565b9188015191965090935050508082111561592757600080fd5b50614e8f85828601615809565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0386811682528516602082015260a06040820181905260009061597690830186614863565b82810360608401526159888186614863565b905082810360808401526155fb818561480b565b6000602082840312156159ae57600080fd5b815161184181614797565b600060033d11156159d25760046000803e5060005160e01c5b90565b600060443d10156159e35790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715615a1257505050505090565b8285019150815181811115615a2a5750505050505090565b843d8701016020828501011115615a445750505050505090565b615a5360208286010187614a5f565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b81516001600160401b03811115615b4657615b46614a49565b615b5a81615b5484546151a8565b8461545e565b602080601f831160018114615b895760008415615b775750858301515b615b8185826154a4565b8655506111e7565b600085815260208120601f198616915b82811015615bb857888601518255948401946001909101908401615b99565b5085821015615bd65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385168152608060208201819052600090615c0a90830186614ccb565b8281036040840152615c1c8186614863565b905082810360608401526141e58185614863565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906141e59083018461480b565b6001600160a01b03868116825285811660208301528416604082015260a060608201819052600090615c9e90830185614863565b82810360808401526155fb8185614863565b600060208284031215615cc257600080fd5b815161184181614dc1565b6020808252601a9082015279457874656e73696f6e20617070726f76616c206661696c75726560301b604082015260600190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b60608201526080019056fe4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fbc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62a26469706673582212203bb6561e4522beada737f8817f0e51e78950d3aad7920f1f8e399ecd8e9ac26964736f6c63430008130033",
  "immutableReferences": {},
  "generatedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:608:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "188:229:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "205:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "216:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "198:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "198:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "198:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "239:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "250:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "235:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "235:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "255:2:81",
                        "type": "",
                        "value": "39"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "228:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "228:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "228:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "278:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "289:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "274:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "274:18:81"
                      },
                      {
                        "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320696e697469",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "294:34:81",
                        "type": "",
                        "value": "Initializable: contract is initi"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "267:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "267:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "267:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "349:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "360:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "345:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "345:18:81"
                      },
                      {
                        "hexValue": "616c697a696e67",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "365:9:81",
                        "type": "",
                        "value": "alizing"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "338:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "338:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "338:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "384:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "396:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "407:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "392:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "392:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "384:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "165:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "179:4:81",
                "type": ""
              }
            ],
            "src": "14:403:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "519:87:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "529:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "541:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "552:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "537:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "537:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "529:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "571:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "586:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "594:4:81",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "582:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "582:17:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "564:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "564:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "564:36:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "488:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "499:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "510:4:81",
                "type": ""
              }
            ],
            "src": "422:184:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:52423:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "59:86:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "123:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "132:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "135:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "125:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "125:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "125:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "82:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "93:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "108:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "113:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "104:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "104:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "117:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "100:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "100:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "89:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "89:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "79:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "79:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "72:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "72:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "69:70:81"
                }
              ]
            },
            "name": "validator_revert_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "48:5:81",
                "type": ""
              }
            ],
            "src": "14:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "237:228:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "283:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "292:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "295:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "285:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "285:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "285:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "258:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "267:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "254:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "254:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "279:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "250:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "250:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "247:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "308:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "334:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "321:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "321:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "312:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "378:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "353:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "353:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "353:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "393:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "403:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "393:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "417:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "444:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "455:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "440:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "440:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "427:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "427:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "417:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "195:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "206:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "218:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "226:6:81",
                "type": ""
              }
            ],
            "src": "150:315:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "571:76:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "581:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "593:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "604:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "589:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "589:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "581:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "623:9:81"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "634:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "616:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "616:25:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "616:25:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "540:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "551:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "562:4:81",
                "type": ""
              }
            ],
            "src": "470:177:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "696:87:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "761:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "770:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "773:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "763:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "763:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "763:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "719:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "730:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "741:3:81",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "746:10:81",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "737:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "737:20:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "726:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "726:32:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "716:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "716:43:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "709:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "709:51:81"
                  },
                  "nodeType": "YulIf",
                  "src": "706:71:81"
                }
              ]
            },
            "name": "validator_revert_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "685:5:81",
                "type": ""
              }
            ],
            "src": "652:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "857:176:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "903:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "912:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "915:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "905:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "905:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "905:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "878:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "887:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "874:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "874:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "899:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "870:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "870:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "867:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "928:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "954:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "941:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "941:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "932:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "997:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "973:23:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "973:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "973:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1012:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1022:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1012:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "823:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "834:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "846:6:81",
                "type": ""
              }
            ],
            "src": "788:245:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1133:92:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1143:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1155:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1166:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1151:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1151:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1143:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1185:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "1210:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "1203:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1203:14:81"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "1196:6:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1196:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1178:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1178:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1178:41:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1102:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1113:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1124:4:81",
                "type": ""
              }
            ],
            "src": "1038:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1300:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1346:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1355:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1358:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1348:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1348:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1348:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1321:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1330:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1317:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1317:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1342:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1313:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1313:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1310:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1371:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1397:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1384:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1384:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "1375:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1441:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "1416:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1416:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1416:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1456:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1466:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1456:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1266:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1277:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1289:6:81",
                "type": ""
              }
            ],
            "src": "1230:247:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1548:184:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1558:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1567:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "1562:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1627:63:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "dst",
                                  "nodeType": "YulIdentifier",
                                  "src": "1652:3:81"
                                },
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "1657:1:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "1648:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1648:11:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "src",
                                      "nodeType": "YulIdentifier",
                                      "src": "1671:3:81"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "1676:1:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "1667:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1667:11:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "1661:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1661:18:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1641:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1641:39:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1641:39:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1588:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1591:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "1585:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1585:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1599:19:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1601:15:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1610:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1613:2:81",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1606:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1606:10:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1601:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "1581:3:81",
                    "statements": []
                  },
                  "src": "1577:113:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "1710:3:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1715:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1706:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1706:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1724:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1699:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1699:27:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1699:27:81"
                }
              ]
            },
            "name": "copy_memory_to_memory_with_cleanup",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "1526:3:81",
                "type": ""
              },
              {
                "name": "dst",
                "nodeType": "YulTypedName",
                "src": "1531:3:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "1536:6:81",
                "type": ""
              }
            ],
            "src": "1482:250:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1787:221:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1797:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1817:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1811:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1811:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "1801:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "1839:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1844:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1832:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1832:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1832:19:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "1899:5:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1906:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1895:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1895:16:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1917:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1922:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1913:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1913:14:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1929:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "1860:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1860:76:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1860:76:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1945:57:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1960:3:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "1973:6:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1981:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "1969:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1969:15:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1990:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "1986:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1986:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "1965:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1965:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1956:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1956:39:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1997:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1952:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1952:50:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "1945:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "1764:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "1771:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "1779:3:81",
                "type": ""
              }
            ],
            "src": "1737:271:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2134:99:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2151:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2162:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2144:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2144:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2144:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2174:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "2200:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2212:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2223:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2208:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2208:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "2182:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2182:45:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2174: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": "2103:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2114:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2125:4:81",
                "type": ""
              }
            ],
            "src": "2013:220:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2308:110:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2354:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2363:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2366:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2356:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2356:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2356:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2329:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2338:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2325:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2325:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2350:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2321:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2321:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2318:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2379:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2402:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2389:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2389:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2379:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2274:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2285:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2297:6:81",
                "type": ""
              }
            ],
            "src": "2238:180:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2484:374:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2494:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2514:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "2508:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2508:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "2498:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2536:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2541:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2529:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2529:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2529:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2557:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2567:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2561:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2580:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2591:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2596:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2587:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2587:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "2580:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2608:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2626:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2633:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2622:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2622:14:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "2612:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2645:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2654:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "2649:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2713:120:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2734:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nodeType": "YulIdentifier",
                                  "src": "2745:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "2739:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2739:13:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "2727:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2727:26:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2727:26:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2766:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2777:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2782:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2773:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2773:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "2766:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2798:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "2812:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2820:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2808:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2808:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "2798:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "2675:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2678:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "2672:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2672:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "2686:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "2688:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "2697:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2700:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2693:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2693:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "2688:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "2668:3:81",
                    "statements": []
                  },
                  "src": "2664:169:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2842:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "2849:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "2842:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "2461:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "2468:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "2476:3:81",
                "type": ""
              }
            ],
            "src": "2423:435:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3014:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3031:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3042:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3024:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3024:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3024:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3054:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "3091:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3103:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3114:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3099:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3099:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "3062:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3062:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3054:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2983:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2994:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3005:4:81",
                "type": ""
              }
            ],
            "src": "2863:261:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3202:275:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3251:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3260:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3263:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3253:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3253:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3253:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3230:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3238:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3226:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3226:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "3245:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "3222:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3222:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "3215:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3215:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3212:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3276:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3299:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3286:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3286:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "3276:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3349:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3358:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3361:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3351:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3351:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3351:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3321:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3329:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3318:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3318:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3315:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3374:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3390:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3398:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3386:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3386:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "3374:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3455:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3464:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3467:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3457:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3457:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3457:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3426:6:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "3434:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3422:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3422:19:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3443:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3418:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3418:30:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "3450:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3415:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3415:39:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3412:59:81"
                }
              ]
            },
            "name": "abi_decode_string_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "3165:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "3173:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "3181:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "3191:6:81",
                "type": ""
              }
            ],
            "src": "3129:348:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3589:372:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3635:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3644:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3647:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3637:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3637:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3637:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3610:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3619:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "3606:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3606:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3631:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "3602:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3602:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3599:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3660:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3683:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3670:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3670:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "3660:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3702:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3733:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3744:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3729:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3729:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3716:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3716:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "3706:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3791:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3800:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3803:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3793:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3793:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3793:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3763:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3771:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3760:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3760:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3757:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3816:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3873:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "3884:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3869:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3869:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3893:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "3842:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3842:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "3820:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "3830:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3910:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "3920:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "3910:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3937:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "3947:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "3937:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3539:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "3550:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3562:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3570:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "3578:6:81",
                "type": ""
              }
            ],
            "src": "3482:479:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4058:283:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4107:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4116:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4119:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4109:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4109:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4109:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4086:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4094:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4082:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4082:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "4101:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "4078:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4078:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "4071:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4071:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4068:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4132:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4155:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4142:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4142:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "4132:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4205:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4214:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4217:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4207:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4207:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4207:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "4177:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4185:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4174:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4174:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4171:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4230:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4246:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4254:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4242:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4242:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "4230:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4319:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4328:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4331:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4321:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4321:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4321:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4282:6:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "4294:1:81",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "4297:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "4290:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4290:14:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4278:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4278:27:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4307:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4274:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4274:38:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "4314:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4271:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4271:47:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4268:67:81"
                }
              ]
            },
            "name": "abi_decode_array_address_payable_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "4021:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "4029:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "4037:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "4047:6:81",
                "type": ""
              }
            ],
            "src": "3966:375:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4528:683:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4574:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4583:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4586:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4576:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4576:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4576:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4549:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4558:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4545:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4545:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4570:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "4541:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4541:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4538:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4599:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4622:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4609:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4609:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "4599:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4641:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4672:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4683:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4668:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4668:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4655:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4655:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "4645:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4696:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "4706:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "4700:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4751:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4760:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4763:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4753:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4753:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4753:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4739:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4747:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4736:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4736:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4733:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4776:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4852:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4863:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4848:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4848:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "4872:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "4802:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4802:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "4780:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "4790:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4889:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "4899:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "4889:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4916:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "4926:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "4916:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4943:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4976:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4987:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4972:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4972:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4959:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4959:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "4947:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5020:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5029:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5032:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5022:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5022:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5022:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "5006:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "5016:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5003:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5003:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5000:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5045:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5121:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "5132:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5117:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5117:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5143:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "5071:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5071:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "5049:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "5059:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5160:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "5170:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "5160:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5187:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "5197:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "5187:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4462:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "4473:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4485:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "4493:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "4501:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "4509:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "4517:6:81",
                "type": ""
              }
            ],
            "src": "4346:865:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5317:102:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5327:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5339:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5350:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5335:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5335:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5327:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5369:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "5384:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5400:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5405:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "5396:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5396:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5409:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "5392:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5392:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "5380:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5380:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5362:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5362:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5362:51:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5286:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5297:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5308:4:81",
                "type": ""
              }
            ],
            "src": "5216:203:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5511:161:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5557:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5566:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5569:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5559:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5559:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5559:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5532:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5541:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5528:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5528:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5553:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5524:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5524:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5521:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5582:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5605:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5592:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5592:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "5582:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5624:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5651:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5662:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5647:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5647:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5634:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5634:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "5624:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5469:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5480:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5492:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5500:6:81",
                "type": ""
              }
            ],
            "src": "5424:248:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5806:145:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5816:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5828:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5839:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5824:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5824:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5816:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5858:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "5873:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5889:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5894:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "5885:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5885:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5898:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "5881:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5881:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "5869:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5869:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5851:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5851:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5851:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5922:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5933:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5918:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5918:18:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "5938:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5911:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5911:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5911:34:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5767:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5778:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5786:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5797:4:81",
                "type": ""
              }
            ],
            "src": "5677:274:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5988:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6005:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6012:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6017:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "6008:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6008:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5998:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5998:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5998:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6045:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6048:4:81",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6038:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6038:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6038:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6069:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6072:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "6062:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6062:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6062:15:81"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "5956:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6135:202:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6145:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6167:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nodeType": "YulIdentifier",
                                "src": "6183:4:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6189:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6179:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6179:13:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6198:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "6194:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6194:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "6175:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6175:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6163:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6163:40:81"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "6149:10:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6278:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "6280:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6280:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6280:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "6221:10:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6233:18:81",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "6218:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6218:34:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "6257:10:81"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "6269:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "6254:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6254:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "6215:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6215:62:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6212:88:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6316:2:81",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "6320:10:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6309:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6309:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6309:22:81"
                }
              ]
            },
            "name": "finalize_allocation",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "6117:6:81",
                "type": ""
              },
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "6125:4:81",
                "type": ""
              }
            ],
            "src": "6088:249:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6411:114:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6455:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "6457:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6457:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6457:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "6427:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6435:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6424:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6424:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6421:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6486:33:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6502:1:81",
                            "type": "",
                            "value": "5"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "6505:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "6498:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6498:14:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6514:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6494:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6494:25:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "6486:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "6391:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "6402:4:81",
                "type": ""
              }
            ],
            "src": "6342:183:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6594:660:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6643:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6652:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6655:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6645:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6645:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6645:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "6622:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6630:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6618:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6618:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "6637:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "6614:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6614:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "6607:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6607:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6604:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6668:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6691:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6678:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6678:20:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "6672:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6707:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6717:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "6711:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6730:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6780:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "6740:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6740:43:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "6734:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6792:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6812:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "6806:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6806:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "6796:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6844:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "6852:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "6824:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6824:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6824:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6864:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "6875:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "6868:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6897:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6905:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6890:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6890:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6890:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6917:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6928:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6936:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6924:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6924:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "6917:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6948:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "6970:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6982:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "6985:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "6978:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6978:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6966:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6966:23:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6991:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6962:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6962:32:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "6952:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7022:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7031:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7034:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7024:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7024:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7024:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7009:6:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "7017:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7006:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7006:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7003:35:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7047:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7062:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7070:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7058:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7058:15:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "7051:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7138:86:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "7159:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "7177:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "calldataload",
                                "nodeType": "YulIdentifier",
                                "src": "7164:12:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7164:17:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7152:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7152:30:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7152:30:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7195:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "7206:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "7211:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7202:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7202:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "7195:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "7093:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7098:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "7090:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7090:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "7106:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7108:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "7119:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "7124:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7115:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7115:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "7108:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "7086:3:81",
                    "statements": []
                  },
                  "src": "7082:142:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7233:15:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "7242:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "7233:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "6568:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "6576:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "6584:5:81",
                "type": ""
              }
            ],
            "src": "6530:724:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7316:129:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7360:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "7362:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7362:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7362:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7332:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7340:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7329:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7329:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7326:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7391:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "7411:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7419:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7407:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7407:15:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7428:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "7424:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7424:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "7403:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7403:29:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7434:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7399:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7399:40:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "7391:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_bytes",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "7296:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "7307:4:81",
                "type": ""
              }
            ],
            "src": "7259:186:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7502:456:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7551:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7560:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7563:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7553:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7553:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7553:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7530:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7538:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7526:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7526:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "7545:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "7522:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7522:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "7515:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7515:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7512:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7576:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7599:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7586:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7586:20:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "7580:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7615:41:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7653:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "7625:27:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7625:31:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "7619:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7665:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7685:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "7679:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7679:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "7669:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "7717:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7725:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "7697:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7697:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7697:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "7744:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7752:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7737:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7737:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7737:18:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7803:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7812:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7815:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7805:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7805:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7805:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7778:6:81"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "7786:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7774:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7774:15:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7791:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7770:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7770:26:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "7798:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7767:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7767:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7764:55:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "7845:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7853:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7841:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7841:17:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "7864:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7872:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7860:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7860:17:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7879:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "7828:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7828:54:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7828:54:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "memPtr",
                                "nodeType": "YulIdentifier",
                                "src": "7906:6:81"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "7914:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7902:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7902:15:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7919:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7898:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7898:26:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7926:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7891:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7891:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7891:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7937:15:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "7946:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "7937:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_bytes",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "7476:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "7484:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "7492:5:81",
                "type": ""
              }
            ],
            "src": "7450:508:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8160:874:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8207:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8216:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8219:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8209:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8209:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8209:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8181:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8190:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "8177:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8177:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8202:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8173:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8173:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8170:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8232:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8258:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8245:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8245:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "8236:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "8302:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "8277:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8277:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8277:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8317:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "8327:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "8317:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8341:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8373:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8384:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8369:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8369:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8356:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8356:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "8345:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "8422:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "8397:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8397:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8397:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8439:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "8449:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "8439:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8465:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8496:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8507:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8492:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8492:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8479:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8479:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "8469:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8520:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "8530:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "8524:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8575:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8584:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8587:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8577:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8577:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8577:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "8563:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8571:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8560:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8560:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8557:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8600:71:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8643:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "8654:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8639:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8639:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8663:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "8610:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8610:61:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "8600:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8680:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8713:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8724:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8709:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8709:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8696:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8696:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "8684:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8757:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8766:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8769:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8759:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8759:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8759:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "8743:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8753:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8740:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8740:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8737:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8782:73:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8825:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "8836:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8821:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8821:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8847:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "8792:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8792:63:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "8782:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8864:49:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8897:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8908:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8893:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8893:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8880:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8880:33:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "8868:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8942:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8951:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8954:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8944:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8944:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8944:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "8928:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8938:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8925:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8925:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8922:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8967:61:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8998:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "9009:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8994:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8994:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9020:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "8977:16:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8977:51:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "8967:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8094:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8105:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8117:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8125:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8133:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "8141:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "8149:6:81",
                "type": ""
              }
            ],
            "src": "7963:1071:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9129:321:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9175:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9184:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9187:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9177:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9177:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9177:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9150:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9159:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9146:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9146:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9171:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9142:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9142:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9139:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9200:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9227:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9214:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9214:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9204:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9280:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9289:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9292:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9282:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9282:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9282:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9252:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9260:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9249:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9249:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9246:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9305:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9362:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9373:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9358:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9358:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9382:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9331:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9331:59:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "9309:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9319:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9399:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "9409:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9399:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9426:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "9436:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9426:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9087:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9098:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9110:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9118:6:81",
                "type": ""
              }
            ],
            "src": "9039:411:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9562:439:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9608:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9617:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9620:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9610:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9610:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9610:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9583:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9592:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9579:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9579:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9604:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9575:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9575:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9572:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9633:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9659:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9646:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9646:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "9637:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "9703:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "9678:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9678:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9678:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9718:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "9728:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9718:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9742:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9773:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9784:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9769:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9769:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9756:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9756:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9746:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9831:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9840:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9843:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9833:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9833:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9833:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9803:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9811:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9800:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9800:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9797:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9856:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9913:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9924:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9909:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9909:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9933:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9882:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9882:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9860:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "9870:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9950:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "9960:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9950:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9977:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "9987:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "9977:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9512:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9523:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9535:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9543:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "9551:6:81",
                "type": ""
              }
            ],
            "src": "9455:546:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10067:400:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10077:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "10097:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "10091:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10091:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "10081:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "10119:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "10124:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10112:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10112:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10112:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10140:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "10150:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "10144:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10163:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "10174:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "10179:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "10170:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10170:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "10163:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10191:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "10209:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "10216:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "10205:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10205:14:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "10195:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10228:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "10237:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "10232:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10296:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "10317:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "10332:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "10326:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "10326:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "10349:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "10354:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "10345:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "10345:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "10358:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "10341:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "10341:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "10322:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "10322:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "10310:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10310:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10310:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "10375:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "10386:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "10391:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10382:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10382:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "10375:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "10407:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "10421:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "10429:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10417:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10417:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "10407:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "10258:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "10261:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "10255:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10255:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "10269:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "10271:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "10280:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10283:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10276:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10276:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "10271:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "10251:3:81",
                    "statements": []
                  },
                  "src": "10247:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10451:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "10458:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "10451:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_address_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "10044:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "10051:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "10059:3:81",
                "type": ""
              }
            ],
            "src": "10006:461:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10623:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10640:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10651:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10633:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10633:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10633:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10663:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "10700:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10712:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10723:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10708:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10708:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "10671:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10671:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "10663: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": "10592:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "10603:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "10614:4:81",
                "type": ""
              }
            ],
            "src": "10472:261:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10903:632:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10949:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10958:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10961:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10951:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10951:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10951:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10924:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10933:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "10920:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10920:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10945:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "10916:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10916:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10913:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10974:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11001:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10988:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10988:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "10978:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11020:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "11030:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "11024:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11075:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11084:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11087:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11077:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11077:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11077:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "11063:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "11071:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11060:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11060:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11057:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11100:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11176:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "11187:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11172:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11172:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "11196:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "11126:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11126:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "11104:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "11114:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11213:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "11223:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "11213:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11240:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "11250:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "11240:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11267:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11300:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11311:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11296:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11296:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11283:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11283:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "11271:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11344:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11353:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11356:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11346:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11346:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11346:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "11330:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "11340:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11327:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11327:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11324:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11369:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11445:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "11456:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11441:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11441:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "11467:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "11395:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11395:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "11373:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "11383:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11484:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "11494:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "11484:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11511:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "11521:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "11511:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10845:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "10856:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "10868:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "10876:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "10884:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "10892:6:81",
                "type": ""
              }
            ],
            "src": "10738:797:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11714:750:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11760:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11769:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11772:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11762:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11762:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11762:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "11735:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11744:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "11731:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11731:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11756:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "11727:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11727:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11724:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11785:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11811:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11798:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11798:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "11789:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "11855:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "11830:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11830:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11830:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11870:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "11880:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "11870:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11894:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11925:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11936:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11921:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11921:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11908:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11908:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "11898:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11949:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "11959:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "11953:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12004:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12013:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12016:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12006:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12006:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12006:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "11992:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12000:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11989:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11989:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11986:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12029:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12105:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "12116:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12101:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12101:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "12125:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12055:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12055:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "12033:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "12043:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12142:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "12152:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "12142:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12169:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "12179:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "12169:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12196:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12229:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12240:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12225:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12225:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12212:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12212:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "12200:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12273:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12282:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12285:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12275:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12275:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12275:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "12259:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12269:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12256:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12256:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12253:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12298:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12374:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "12385:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12370:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12370:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "12396:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12324:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12324:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "12302:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "12312:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12413:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "12423:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "12413:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12440:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "12450:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "12440:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "11648:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "11659:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "11671:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "11679:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "11687:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "11695:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "11703:6:81",
                "type": ""
              }
            ],
            "src": "11540:924:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12511:76:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12565:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12574:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12577:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12567:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12567:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12567:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "12534:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "12555:5:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "12548:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "12548:13:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "12541:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "12541:21:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "12531:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12531:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "12524:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12524:40:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12521:60:81"
                }
              ]
            },
            "name": "validator_revert_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "12500:5:81",
                "type": ""
              }
            ],
            "src": "12469:118:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12713:560:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12759:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12768:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12771:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12761:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12761:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12761:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "12734:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12743:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "12730:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12730:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12755:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "12726:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12726:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12723:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12784:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12810:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12797:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12797:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "12788:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "12854:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "12829:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12829:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12829:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12869:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "12879:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "12869:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12893:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12924:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12935:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12920:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12920:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12907:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12907:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "12897:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12982:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12991:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12994:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12984:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12984:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12984:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "12954:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12962:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12951:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12951:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12948:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13007:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13064:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "13075:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13060:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13060:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13084:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "13033:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13033:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "13011:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "13021:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13101:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "13111:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "13101:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13128:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "13138:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "13128:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13155:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13187:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13198:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13183:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13183:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13170:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13170:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "13159:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "13233:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "13211:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13211:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13211:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13250:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "13260:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "13250:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12655:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "12666:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "12678:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "12686:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "12694:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "12702:6:81",
                "type": ""
              }
            ],
            "src": "12592:681:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13385:434:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13431:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13440:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13443:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13433:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13433:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13433:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "13406:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13415:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "13402:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13402:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13427:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "13398:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13398:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13395:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13456:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13483:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13470:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13470:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "13460:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13502:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "13512:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "13506:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13557:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13566:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13569:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13559:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13559:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13559:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "13545:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "13553:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13542:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13542:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13539:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13582:59:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13613:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "13624:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13609:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13609:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13633:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "13592:16:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13592:49:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "13582:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13650:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13683:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13694:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13679:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13679:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13666:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13666:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "13654:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13727:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13736:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13739:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13729:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13729:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13729:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "13713:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "13723:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13710:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13710:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13707:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13752:61:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13783:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "13794:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13779:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13779:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13805:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "13762:16:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13762:51:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "13752:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13343:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "13354:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13366:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "13374:6:81",
                "type": ""
              }
            ],
            "src": "13278:541:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13961:1140:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14007:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14016:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14019:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14009:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14009:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14009:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "13982:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13991:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "13978:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13978:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14003:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "13974:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13974:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13971:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14032:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14059:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14046:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14046:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "14036:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14078:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "14088:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "14082:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14133:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14142:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14145:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14135:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14135:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14135:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "14121:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "14129:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14118:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14118:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14115:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14158:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14172:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "14183:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14168:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14168:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "14162:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14238:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14247:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14250:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14240:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14240:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14240:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "14217:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "14221:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "14213:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "14213:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14228:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "14209:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14209:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "14202:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14202:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14199:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14263:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "14286:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14273:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14273:16:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "14267:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14298:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "14308:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "14302:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14321:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "14371:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "14331:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14331:43:81"
                  },
                  "variables": [
                    {
                      "name": "_5",
                      "nodeType": "YulTypedName",
                      "src": "14325:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14383:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14403:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "14397:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14397:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "14387:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "14435:6:81"
                      },
                      {
                        "name": "_5",
                        "nodeType": "YulIdentifier",
                        "src": "14443:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "14415:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14415:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14415:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14455:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "14466:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "14459:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "14488:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "14496:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14481:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14481:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14481:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14508:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "14519:6:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "14527:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14515:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14515:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "14508:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14539:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "14561:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "14569:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "14572:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "14565:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "14565:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14557:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14557:19:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "14578:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14553:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14553:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "14543:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14613:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14622:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14625:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14615:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14615:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14615:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14596:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14604:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14593:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14593:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14590:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14638:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "14653:2:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "14657:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14649:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14649:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "14642:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14725:161:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "14739:30:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "14765:3:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "14752:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14752:17:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "14743:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "14807:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "14782:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14782:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14782:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "14833:3:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "14838:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "14826:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14826:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14826:18:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "14857:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "14868:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "14873:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "14864:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14864:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "14857:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "14680:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14685:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "14677:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14677:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "14693:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "14695:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "14706:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "14711:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "14702:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14702:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "14695:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "14673:3:81",
                    "statements": []
                  },
                  "src": "14669:217:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14895:16:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "14905:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "14895:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14920:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14953:9:81"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "14964:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14949:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14949:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14936:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14936:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "14924:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14997:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15006:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15009:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14999:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14999:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14999:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "14983:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "14993:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14980:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14980:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14977:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15022:73:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15065:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "15076:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15061:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15061:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15087:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "15032:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15032:63:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "15022:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13919:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "13930:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13942:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "13950:6:81",
                "type": ""
              }
            ],
            "src": "13824:1277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15275:632:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15321:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15330:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15333:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15323:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15323:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15323:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "15296:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15305:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "15292:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15292:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15317:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "15288:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15288:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15285:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15346:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15373:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15360:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15360:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "15350:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15392:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "15402:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "15396:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15447:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15456:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15459:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15449:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15449:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15449:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "15435:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15443:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15432:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15432:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15429:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15472:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15548:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "15559:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15544:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15544:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15568:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "15498:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15498:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "15476:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "15486:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15585:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "15595:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "15585:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15612:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "15622:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "15612:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15639:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15672:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15683:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15668:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15668:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15655:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15655:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "15643:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15716:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15725:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15728:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15718:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15718:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15718:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "15702:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15712:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15699:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15699:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15696:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15741:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15817:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "15828:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15813:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15813:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15839:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "15767:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15767:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "15745:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "15755:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15856:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "15866:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "15856:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15883:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "15893:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "15883:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "15217:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "15228:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "15240:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "15248:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "15256:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "15264:6:81",
                "type": ""
              }
            ],
            "src": "15106:801:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16121:903:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16167:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16176:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16179:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16169:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16169:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16169:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "16142:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16151:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "16138:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16138:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16163:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "16134:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16134:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16131:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16192:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16219:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16206:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16206:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "16196:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16238:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "16248:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "16242:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16293:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16302:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16305:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16295:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16295:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16295:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "16281:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "16289:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16278:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16278:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16275:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16318:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16394:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "16405:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16390:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16390:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16414:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16344:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16344:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "16322:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "16332:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16431:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "16441:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "16431:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16458:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "16468:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "16458:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16485:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16518:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16529:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16514:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16514:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16501:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16501:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "16489:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16562:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16571:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16574:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16564:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16564:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16564:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "16548:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "16558:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16545:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16545:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16542:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16587:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16663:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "16674:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16659:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16659:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16685:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16613:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16613:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "16591:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "16601:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16702:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "16712:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "16702:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16729:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "16739:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "16729:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16756:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16789:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16800:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16785:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16785:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16772:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16772:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "16760:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16833:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16842:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16845:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16835:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16835:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16835:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "16819:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "16829:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16816:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16816:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16813:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16858:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16934:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "16945:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16930:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16930:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16956:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16884:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16884:80:81"
                  },
                  "variables": [
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "16862:8:81",
                      "type": ""
                    },
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "16872:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16973:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "16983:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "16973:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17000:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "17010:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "17000:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "16047:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "16058:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "16070:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "16078:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "16086:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "16094:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "16102:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "16110:6:81",
                "type": ""
              }
            ],
            "src": "15912:1112:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17133:436:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17179:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17188:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17191:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17181:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17181:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17181:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "17154:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17163:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "17150:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17150:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17175:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "17146:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17146:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17143:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17204:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17231:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "17218:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17218:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "17208:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17284:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17293:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17296:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17286:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17286:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17286:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "17256:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17264:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "17253:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17253:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17250:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17309:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17366:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "17377:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17362:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17362:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "17386:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "17335:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17335:59:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "17313:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "17323:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17403:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "17413:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "17403:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17430:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "17440:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "17430:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17457:45:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17487:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17498:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17483:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17483:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "17470:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17470:32:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "17461:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "17533:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "17511:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17511:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17511:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17548:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "17558:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "17548:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17083:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "17094:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17106:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "17114:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "17122:6:81",
                "type": ""
              }
            ],
            "src": "17029:540:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17795:903:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17841:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17850:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17853:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17843:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17843:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17843:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "17816:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17825:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "17812:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17812:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17837:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "17808:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17808:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17805:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17866:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17893:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "17880:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17880:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "17870:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17912:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "17922:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "17916:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17967:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17976:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17979:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17969:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17969:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17969:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "17955:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "17963:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "17952:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17952:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17949:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17992:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18068:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "18079:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18064:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18064:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "18088:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "18018:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18018:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "17996:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "18006:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18105:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "18115:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "18105:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18132:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "18142:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "18132:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18159:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18192:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18203:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18188:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18188:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18175:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18175:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "18163:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18236:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18245:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18248:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18238:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18238:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18238:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "18222:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "18232:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "18219:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18219:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18216:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18261:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18337:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "18348:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18333:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18333:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "18359:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "18287:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18287:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "18265:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "18275:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18376:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "18386:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "18376:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18403:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "18413:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "18403:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18430:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18463:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18474:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18459:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18459:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18446:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18446:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "18434:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18507:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18516:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18519:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18509:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18509:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18509:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "18493:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "18503:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "18490:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18490:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18487:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18532:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18608:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "18619:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18604:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18604:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "18630:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "18558:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18558:80:81"
                  },
                  "variables": [
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "18536:8:81",
                      "type": ""
                    },
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "18546:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18647:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "18657:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "18647:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18674:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "18684:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "18674: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": "17721:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "17732:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17744:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "17752:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "17760:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "17768:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "17776:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "17784:6:81",
                "type": ""
              }
            ],
            "src": "17574:1124:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18787:298:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18833:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18842:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18845:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18835:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18835:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18835:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18808:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18817:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18804:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18804:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18829:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "18800:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18800:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18797:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18858:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18884:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18871:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18871:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "18862:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "18928:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "18903:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18903:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18903:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18943:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "18953:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "18943:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18967:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18999:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19010:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18995:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18995:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18982:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18982:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "18971:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "19045:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "19023:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19023:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19023:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19062:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "19072:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "19062:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18745:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "18756:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18768:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "18776:6:81",
                "type": ""
              }
            ],
            "src": "18703:382:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19157:174:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19203:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19212:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19215:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19205:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19205:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19205:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "19178:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19187:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "19174:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19174:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19199:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "19170:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19170:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19167:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19228:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19254:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "19241:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19241:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "19232:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "19295:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "19273:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19273:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19273:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19310:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "19320:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "19310:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "19123:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "19134:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "19146:6:81",
                "type": ""
              }
            ],
            "src": "19090:241:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19518:750:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19564:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19573:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19576:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19566:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19566:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19566:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "19539:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19548:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "19535:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19535:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19560:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "19531:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19531:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19528:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19589:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19615:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "19602:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19602:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "19593:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "19659:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "19634:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19634:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19634:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19674:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "19684:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "19674:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19698:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19729:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19740:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19725:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19725:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "19712:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19712:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "19702:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19753:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "19763:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "19757:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19808:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19817:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19820:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19810:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19810:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19810:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "19796:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "19804:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "19793:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19793:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19790:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19833:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19909:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "19920:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19905:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19905:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "19929:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "19859:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19859:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "19837:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "19847:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19946:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "19956:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "19946:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19973:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "19983:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "19973:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20000:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20033:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20044:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20029:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20029:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "20016:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20016:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "20004:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "20077:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "20086:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "20089:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "20079:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "20079:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "20079:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "20063:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "20073:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "20060:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20060:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "20057:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20102:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20178:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "20189:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20174:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20174:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "20200:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "20128:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20128:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "20106:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "20116:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20217:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "20227:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "20217:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20244:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "20254:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "20244:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "19452:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "19463:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "19475:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "19483:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "19491:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "19499:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "19507:6:81",
                "type": ""
              }
            ],
            "src": "19336:932:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20440:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20457:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20468:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20450:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20450:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20450:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20480:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "20517:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20529:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20540:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20525:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20525:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "20488:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20488:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20480:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20409:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "20420:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20431:4:81",
                "type": ""
              }
            ],
            "src": "20273:277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20800:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20817:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20828:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20810:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20810:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20810:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20840:70:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "20883:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20895:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20906:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20891:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20891:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "20854:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20854:56:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "20844:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20930:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20941:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20926:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20926:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "20950:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20958:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "20946:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20946:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20919:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20919:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20919:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20978:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "21015:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "21023:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "20986:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20986:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20978: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": "20761:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "20772:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "20780:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20791:4:81",
                "type": ""
              }
            ],
            "src": "20555:481:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21128:301:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "21174:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21183:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21186:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "21176:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "21176:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "21176:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "21149:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21158:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "21145:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21145:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21170:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "21141:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21141:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "21138:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21199:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21225:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21212:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21212:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "21203:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "21269:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "21244:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21244:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21244:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21284:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "21294:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "21284:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21308:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21340:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21351:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21336:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21336:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21323:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21323:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "21312:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "21389:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "21364:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21364:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21364:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21406:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "21416:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "21406:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21086:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "21097:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "21109:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "21117:6:81",
                "type": ""
              }
            ],
            "src": "21041:388:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21581:587:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "21628:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21637:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21640:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "21630:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "21630:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "21630:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "21602:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21611:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "21598:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21598:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21623:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "21594:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21594:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "21591:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21653:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21679:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21666:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21666:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "21657:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "21723:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "21698:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21698:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21698:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21738:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "21748:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "21738:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21762:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21794:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21805:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21790:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21790:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21777:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21777:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "21766:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "21843:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "21818:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21818:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21818:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21860:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "21870:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "21860:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21886:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21913:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21924:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21909:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21909:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21896:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21896:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "21886:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21937:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21964:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21975:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21960:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21960:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21947:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21947:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "21937:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21988:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22019:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22030:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22015:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22015:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "22002:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22002:33:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "21992:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "22078:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22087:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22090:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "22080:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22080:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22080:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "22050:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22058:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "22047:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22047:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "22044:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22103:59:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22134:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "22145:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22130:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22130:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "22154:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "22113:16:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22113:49:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "22103:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21515:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "21526:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "21538:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "21546:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "21554:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "21562:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "21570:6:81",
                "type": ""
              }
            ],
            "src": "21434:734:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22347:232:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22364:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22375:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22357:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22357:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22357:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22398:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22409:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22394:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22394:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22414:2:81",
                        "type": "",
                        "value": "42"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22387:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22387:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22387:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22437:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22448:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22433:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22433:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2061646472657373207a65726f206973206e6f7420612076",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22453:34:81",
                        "type": "",
                        "value": "ERC1155: address zero is not a v"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22426:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22426:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22426:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22508:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22519:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22504:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22504:18:81"
                      },
                      {
                        "hexValue": "616c6964206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22524:12:81",
                        "type": "",
                        "value": "alid owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22497:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22497:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22497:40:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22546:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22558:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22569:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22554:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22554:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "22546:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_415a1b99e1fd4a18cf87c08995f5a9130182e8d76e9c17c497bfebaaef9265ad__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "22324:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "22338:4:81",
                "type": ""
              }
            ],
            "src": "22173:406:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22758:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22775:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22786:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22768:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22768:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22768:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22809:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22820:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22805:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22805:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22825:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22798:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22798:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22798:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22848:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22859:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22844:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22844:18:81"
                      },
                      {
                        "hexValue": "41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f722061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22864:34:81",
                        "type": "",
                        "value": "AdminControl: Must be owner or a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22837:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22837:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22837:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22919:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22930:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22915:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22915:18:81"
                      },
                      {
                        "hexValue": "646d696e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22935:6:81",
                        "type": "",
                        "value": "dmin"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22908:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22908:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22908:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22951:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22963:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22974:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22959:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22959:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "22951:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "22735:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "22749:4:81",
                "type": ""
              }
            ],
            "src": "22584:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23044:325:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "23054:22:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23068:1:81",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "23071:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nodeType": "YulIdentifier",
                      "src": "23064:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23064:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "23054:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "23085:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "23115:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23121:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "23111:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23111:12:81"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nodeType": "YulTypedName",
                      "src": "23089:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "23162:31:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "23164:27:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nodeType": "YulIdentifier",
                              "src": "23178:6:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23186:4:81",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nodeType": "YulIdentifier",
                            "src": "23174:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23174:17:81"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "23164:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "23142:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "23135:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23135:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "23132:61:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "23252:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23273:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "23280:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "23285:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "23276:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "23276:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "23266:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23266:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23266:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23317:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23320:4:81",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "23310:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23310:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23310:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23345:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23348:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "23338:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23338:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23338:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "23208:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "23231:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23239:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "23228:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23228:14:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "23205:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23205:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "23202:161:81"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "23024:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "23033:6:81",
                "type": ""
              }
            ],
            "src": "22989:380:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23548:172:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23565:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23576:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23558:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23558:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23558:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23599:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23610:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23595:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23595:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23615:2:81",
                        "type": "",
                        "value": "22"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23588:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23588:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23588:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23638:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23649:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23634:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23634:18:81"
                      },
                      {
                        "hexValue": "4e6f20657874656e73696f6e20666f7220746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "23654:24:81",
                        "type": "",
                        "value": "No extension for token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23627:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23627:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23627:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23688:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23700:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23711:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23696:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23696:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "23688:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23525:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23539:4:81",
                "type": ""
              }
            ],
            "src": "23374:346:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23899:171:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23916:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23927:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23909:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23909:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23909:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23950:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23961:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23946:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23946:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23966:2:81",
                        "type": "",
                        "value": "21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23939:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23939:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23939:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23989:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24000:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23985:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23985:18:81"
                      },
                      {
                        "hexValue": "457874656e73696f6e20626c61636b6c6973746564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24005:23:81",
                        "type": "",
                        "value": "Extension blacklisted"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23978:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23978:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23978:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24038:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24050:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24061:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24046:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24046:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24038:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23876:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23890:4:81",
                "type": ""
              }
            ],
            "src": "23725:345:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24249:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24266:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24277:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24259:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24259:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24259:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24300:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24311:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24296:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24296:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24316:2:81",
                        "type": "",
                        "value": "46"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24289:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24289:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24289:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24339:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24350:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24335:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24335:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24355:34:81",
                        "type": "",
                        "value": "ERC1155: caller is not token own"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24328:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24328:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24328:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24410:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24421:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24406:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24406:18:81"
                      },
                      {
                        "hexValue": "6572206f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24426:16:81",
                        "type": "",
                        "value": "er or approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24399:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24399:44:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24399:44:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24452:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24464:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24475:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24460:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24460:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24452:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_47c72b42072ed6c647dec3a0a5c88bec44d3e901c64659bff94ecce0a0323156__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24226:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24240:4:81",
                "type": ""
              }
            ],
            "src": "24075:410:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24522:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24539:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24546:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24551:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "24542:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24542:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24532:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24532:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24532:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24579:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24582:4:81",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24572:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24572:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24572:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24603:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24606:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "24596:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24596:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24596:15:81"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "24490:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24654:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24671:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24678:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24683:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "24674:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24674:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24664:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24664:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24664:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24711:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24714:4:81",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24704:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24704:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24704:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24735:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24738:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "24728:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24728:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24728:15:81"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "24622:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24801:88:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "24832:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "24834:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "24834:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "24834:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "24817:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24828:1:81",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "24824:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24824:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "24814:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24814:17:81"
                  },
                  "nodeType": "YulIf",
                  "src": "24811:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24863:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "24874:5:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24881:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24870:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24870:13:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "24863:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "24783:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "24793:3:81",
                "type": ""
              }
            ],
            "src": "24754:135:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25068:181:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25085:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25096:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25078:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25078:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25078:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25119:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25130:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25115:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25115:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25135:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25108:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25108:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25108:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25158:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25169:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25154:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25154:18:81"
                      },
                      {
                        "hexValue": "43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25174:33:81",
                        "type": "",
                        "value": "Caller is not owner or approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25147:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25147:61:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25147:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25217:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25229:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25240:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25225:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25225:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25217:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25045:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25059:4:81",
                "type": ""
              }
            ],
            "src": "24894:355:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25428:163:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25445:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25456:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25438:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25438:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25438:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25479:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25490:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25475:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25475:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25495:2:81",
                        "type": "",
                        "value": "13"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25468:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25468:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25468:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25518:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25529:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25514:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25514:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25534:15:81",
                        "type": "",
                        "value": "Invalid input"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25507:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25507:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25507:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25559:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25571:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25582:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25567:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25567:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25559:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25405:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25419:4:81",
                "type": ""
              }
            ],
            "src": "25254:337:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25770:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25787:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25798:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25780:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25780:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25780:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25821:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25832:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25817:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25817:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25837:2:81",
                        "type": "",
                        "value": "46"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25810:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25810:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25810:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25860:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25871:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25856:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25856:18:81"
                      },
                      {
                        "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25876:34:81",
                        "type": "",
                        "value": "Initializable: contract is alrea"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25849:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25849:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25849:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25931:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25942:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25927:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25927:18:81"
                      },
                      {
                        "hexValue": "647920696e697469616c697a6564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25947:16:81",
                        "type": "",
                        "value": "dy initialized"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25920:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25920:44:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25920:44:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25973:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25985:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25996:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25981:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25981:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25973:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25747:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25761:4:81",
                "type": ""
              }
            ],
            "src": "25596:410:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26118:87:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "26128:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26140:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26151:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26136:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26136:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26128:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26170:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "26185:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26193:4:81",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "26181:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26181:17:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26163:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26163:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26163:36:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26087:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "26098:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26109:4:81",
                "type": ""
              }
            ],
            "src": "26011:194:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26384:231:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26401:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26412:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26394:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26394:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26394:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26435:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26446:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26431:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26431:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26451:2:81",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26424:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26424:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26424:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26474:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26485:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26470:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26470:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206163636f756e747320616e6420696473206c656e677468",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26490:34:81",
                        "type": "",
                        "value": "ERC1155: accounts and ids length"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26463:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26463:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26463:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26545:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26556:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26541:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26541:18:81"
                      },
                      {
                        "hexValue": "206d69736d61746368",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26561:11:81",
                        "type": "",
                        "value": " mismatch"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26534:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26534:39:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26534:39:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26582:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26594:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26605:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26590:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26590:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26582:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26361:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26375:4:81",
                "type": ""
              }
            ],
            "src": "26210:405:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26715:427:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "26725:51:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "ptr_to_tail",
                        "nodeType": "YulIdentifier",
                        "src": "26764:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "26751:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26751:25:81"
                  },
                  "variables": [
                    {
                      "name": "rel_offset_of_tail",
                      "nodeType": "YulTypedName",
                      "src": "26729:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "26865:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "26874:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "26877:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "26867:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26867:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "26867:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "rel_offset_of_tail",
                            "nodeType": "YulIdentifier",
                            "src": "26799:18:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [],
                                    "functionName": {
                                      "name": "calldatasize",
                                      "nodeType": "YulIdentifier",
                                      "src": "26827:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "26827:14:81"
                                  },
                                  {
                                    "name": "base_ref",
                                    "nodeType": "YulIdentifier",
                                    "src": "26843:8:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "26823:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "26823:29:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "26858:2:81",
                                    "type": "",
                                    "value": "30"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "26854:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "26854:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "26819:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "26819:43:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "26795:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26795:68:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "26788:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26788:76:81"
                  },
                  "nodeType": "YulIf",
                  "src": "26785:96:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "26890:47:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "base_ref",
                        "nodeType": "YulIdentifier",
                        "src": "26908:8:81"
                      },
                      {
                        "name": "rel_offset_of_tail",
                        "nodeType": "YulIdentifier",
                        "src": "26918:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26904:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26904:33:81"
                  },
                  "variables": [
                    {
                      "name": "addr_1",
                      "nodeType": "YulTypedName",
                      "src": "26894:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26946:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "addr_1",
                        "nodeType": "YulIdentifier",
                        "src": "26969:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "26956:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26956:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "26946:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "27019:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "27028:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "27031:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "27021:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27021:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "27021:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "26991:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26999:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "26988:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26988:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "26985:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27044:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "addr_1",
                        "nodeType": "YulIdentifier",
                        "src": "27056:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27064:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27052:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27052:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "addr",
                      "nodeType": "YulIdentifier",
                      "src": "27044:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "27120:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "27129:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "27132:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "27122:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27122:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "27122:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "addr",
                        "nodeType": "YulIdentifier",
                        "src": "27085:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "calldatasize",
                              "nodeType": "YulIdentifier",
                              "src": "27095:12:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "27095:14:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "27111:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "27091:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27091:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "sgt",
                      "nodeType": "YulIdentifier",
                      "src": "27081:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27081:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "27078:58:81"
                }
              ]
            },
            "name": "access_calldata_tail_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "base_ref",
                "nodeType": "YulTypedName",
                "src": "26672:8:81",
                "type": ""
              },
              {
                "name": "ptr_to_tail",
                "nodeType": "YulTypedName",
                "src": "26682:11:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "addr",
                "nodeType": "YulTypedName",
                "src": "26698:4:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "26704:6:81",
                "type": ""
              }
            ],
            "src": "26620:522:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27321:163:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27338:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27349:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27331:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27331:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27331:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27372:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27383:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27368:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27368:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27388:2:81",
                        "type": "",
                        "value": "13"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27361:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27361:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27361:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27411:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27422:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27407:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27407:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "27427:15:81",
                        "type": "",
                        "value": "Invalid token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27400:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27400:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27400:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27452:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27464:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27475:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27460:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27460:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "27452:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "27298:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "27312:4:81",
                "type": ""
              }
            ],
            "src": "27147:337:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27663:176:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27680:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27691:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27673:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27673:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27673:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27714:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27725:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27710:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27710:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27730:2:81",
                        "type": "",
                        "value": "26"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27703:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27703:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27703:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27753:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27764:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27749:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27749:18:81"
                      },
                      {
                        "hexValue": "546f6b656e206372656174656420627920657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "27769:28:81",
                        "type": "",
                        "value": "Token created by extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27742:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27742:56:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27742:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27807:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27819:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27830:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27815:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27815:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "27807:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "27640:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "27654:4:81",
                "type": ""
              }
            ],
            "src": "27489:350:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28018:225:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28035:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28046:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28028:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28028:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28028:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28069:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28080:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28065:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28065:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28085:2:81",
                        "type": "",
                        "value": "35"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28058:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28058:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28058:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28108:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28119:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28104:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28104:18:81"
                      },
                      {
                        "hexValue": "546f6b656e206e6f742063726561746564206279207468697320657874656e73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "28124:34:81",
                        "type": "",
                        "value": "Token not created by this extens"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28097:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28097:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28097:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28179:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28190:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28175:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28175:18:81"
                      },
                      {
                        "hexValue": "696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "28195:5:81",
                        "type": "",
                        "value": "ion"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28168:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28168:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28168:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "28210:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28222:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28233:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "28218:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28218:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "28210:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "27995:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "28009:4:81",
                "type": ""
              }
            ],
            "src": "27844:399:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28422:228:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28439:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28450:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28432:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28432:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28432:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28473:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28484:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28469:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28469:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28489:2:81",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28462:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28462:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28462:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28512:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28523:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28508:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28508:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "28528:34:81",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28501:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28501:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28501:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28583:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28594:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28579:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28579:18:81"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "28599:8:81",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28572:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28572:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28572:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "28617:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28629:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28640:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "28625:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28625:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "28617:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "28399:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "28413:4:81",
                "type": ""
              }
            ],
            "src": "28248:402:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28829:175:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28846:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28857:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28839:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28839:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28839:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28880:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28891:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28876:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28876:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28896:2:81",
                        "type": "",
                        "value": "25"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28869:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28869:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28869:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28919:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28930:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28915:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28915:18:81"
                      },
                      {
                        "hexValue": "43616e6e6f7420626c61636b6c69737420796f757273656c66",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "28935:27:81",
                        "type": "",
                        "value": "Cannot blacklist yourself"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28908:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28908:55:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28908:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "28972:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28984:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28995:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "28980:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28980:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "28972:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_0cc452069841e70d1cdcec58868ea025555fa12c1e760cb45ef052b3f01f1f1e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "28806:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "28820:4:81",
                "type": ""
              }
            ],
            "src": "28655:349:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29065:65:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29082:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "ptr",
                        "nodeType": "YulIdentifier",
                        "src": "29085:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29075:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29075:14:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29075:14:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "29098:26:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29116:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29119:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "keccak256",
                      "nodeType": "YulIdentifier",
                      "src": "29106:9:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29106:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "data",
                      "nodeType": "YulIdentifier",
                      "src": "29098:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_dataslot_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "ptr",
                "nodeType": "YulTypedName",
                "src": "29048:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "29056:4:81",
                "type": ""
              }
            ],
            "src": "29009:121:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29193:664:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29203:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "29226:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nodeType": "YulIdentifier",
                      "src": "29220:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29220:12:81"
                  },
                  "variables": [
                    {
                      "name": "slotValue",
                      "nodeType": "YulTypedName",
                      "src": "29207:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29241:50:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "slotValue",
                        "nodeType": "YulIdentifier",
                        "src": "29281:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "extract_byte_array_length",
                      "nodeType": "YulIdentifier",
                      "src": "29255:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29255:36:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "29245:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29300:11:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "29310:1:81",
                    "type": "",
                    "value": "1"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "29304:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "29361:126:81",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "29382:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "slotValue",
                                      "nodeType": "YulIdentifier",
                                      "src": "29391:9:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "29406:3:81",
                                          "type": "",
                                          "value": "255"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "not",
                                        "nodeType": "YulIdentifier",
                                        "src": "29402:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "29402:8:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "and",
                                    "nodeType": "YulIdentifier",
                                    "src": "29387:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "29387:24:81"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "29375:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29375:37:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "29375:37:81"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "29425:52:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "29436:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "length",
                                      "nodeType": "YulIdentifier",
                                      "src": "29445:6:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "name": "length",
                                              "nodeType": "YulIdentifier",
                                              "src": "29467:6:81"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "iszero",
                                            "nodeType": "YulIdentifier",
                                            "src": "29460:6:81"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "29460:14:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "iszero",
                                        "nodeType": "YulIdentifier",
                                        "src": "29453:6:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "29453:22:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nodeType": "YulIdentifier",
                                    "src": "29441:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "29441:35:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "29432:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29432:45:81"
                            },
                            "variableNames": [
                              {
                                "name": "ret",
                                "nodeType": "YulIdentifier",
                                "src": "29425:3:81"
                              }
                            ]
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "29354:133:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29359:1:81",
                        "type": "",
                        "value": "0"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "29503:348:81",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "29524:1:81",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "29527:5:81"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "29517:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29517:16:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "29517:16:81"
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "29546:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29556:4:81",
                              "type": "",
                              "value": "0x20"
                            },
                            "variables": [
                              {
                                "name": "_2",
                                "nodeType": "YulTypedName",
                                "src": "29550:2:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "29573:31:81",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "29598:1:81",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "name": "_2",
                                  "nodeType": "YulIdentifier",
                                  "src": "29601:2:81"
                                }
                              ],
                              "functionName": {
                                "name": "keccak256",
                                "nodeType": "YulIdentifier",
                                "src": "29588:9:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29588:16:81"
                            },
                            "variables": [
                              {
                                "name": "dataPos",
                                "nodeType": "YulTypedName",
                                "src": "29577:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "29617:10:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29626:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "29621:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "29694:111:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "pos",
                                            "nodeType": "YulIdentifier",
                                            "src": "29723:3:81"
                                          },
                                          {
                                            "name": "i",
                                            "nodeType": "YulIdentifier",
                                            "src": "29728:1:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "29719:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "29719:11:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "dataPos",
                                            "nodeType": "YulIdentifier",
                                            "src": "29738:7:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "sload",
                                          "nodeType": "YulIdentifier",
                                          "src": "29732:5:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "29732:14:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "29712:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "29712:35:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "29712:35:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "29764:27:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dataPos",
                                        "nodeType": "YulIdentifier",
                                        "src": "29779:7:81"
                                      },
                                      {
                                        "name": "_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "29788:2:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "29775:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "29775:16:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dataPos",
                                      "nodeType": "YulIdentifier",
                                      "src": "29764:7:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "29651:1:81"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "29654:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "29648:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29648:13:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "29662:19:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "29664:15:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "29673:1:81"
                                      },
                                      {
                                        "name": "_2",
                                        "nodeType": "YulIdentifier",
                                        "src": "29676:2:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "29669:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "29669:10:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "29664:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "29644:3:81",
                              "statements": []
                            },
                            "src": "29640:165:81"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "29818:23:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "29829:3:81"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "29834:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "29825:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29825:16:81"
                            },
                            "variableNames": [
                              {
                                "name": "ret",
                                "nodeType": "YulIdentifier",
                                "src": "29818:3:81"
                              }
                            ]
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "29496:355:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29501:1:81",
                        "type": "",
                        "value": "1"
                      }
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "slotValue",
                        "nodeType": "YulIdentifier",
                        "src": "29331:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "29342:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "29327:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29327:18:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "29320:531:81"
                }
              ]
            },
            "name": "abi_encode_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "29170:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "29177:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "29185:3:81",
                "type": ""
              }
            ],
            "src": "29135:722:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30043:96:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "30053:80:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "30086:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "30120:6:81"
                          },
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "30128:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "abi_encode_string_storage",
                          "nodeType": "YulIdentifier",
                          "src": "30094:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30094:38:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "30060:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30060:73:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "30053:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_string_storage_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "30011:3:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "30016:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "30024:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "30035:3:81",
                "type": ""
              }
            ],
            "src": "29862:277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30235:612:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30281:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30290:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30293:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "30283:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30283:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30283:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "30256:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30265:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "30252:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30252:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30277:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "30248:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30248:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "30245:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "30306:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30326:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "30320:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30320:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "30310:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30379:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30388:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30391:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "30381:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30381:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30381:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "30351:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30359:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "30348:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30348:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "30345:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "30404:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30418:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "30429:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "30414:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30414:22:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "30408:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30484:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30493:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30496:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "30486:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30486:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30486:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "30463:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "30467:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "30459:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "30459:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "30474:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "30455:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30455:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "30448:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30448:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "30445:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "30509:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "30525:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "30519:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30519:9:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "30513:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "30537:41:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "30575:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "30547:27:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30547:31:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "30541:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "30587:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30607:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "30601:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30601:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "30591:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "30639:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "30647:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "30619:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30619:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30619:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "30666:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "30674:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30659:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30659:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30659:18:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30723:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30732:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30735:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "30725:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30725:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30725:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "30700:2:81"
                              },
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "30704:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "30696:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "30696:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30709:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30692:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30692:20:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "30714:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "30689:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30689:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "30686:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "30787:2:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30791:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30783:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30783:11:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "30800:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30808:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30796:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30796:15:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "30813:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "30748:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30748:68:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30748:68:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "30825:16:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "30835:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "30825:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "30201:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "30212:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "30224:6:81",
                "type": ""
              }
            ],
            "src": "30144:703:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31036:205:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31046:48:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "31082:6:81"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "31090:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "31056:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31056:38:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "31050:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31103:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "31123:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "31117:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31117:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "31107:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "31178:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31186:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "31174:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31174:17:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "31193:2:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "31197:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "31139:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31139:65:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31139:65:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "31213:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "31224:2:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "31228:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "31220:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31220:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "31213:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "31004:3:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "31009:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "31017:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "31028:3:81",
                "type": ""
              }
            ],
            "src": "30852:389:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31327:464:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "31360:425:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "31374:11:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "31384:1:81",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "31378:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "31405:2:81"
                            },
                            {
                              "name": "array",
                              "nodeType": "YulIdentifier",
                              "src": "31409:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "31398:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31398:17:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "31398:17:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "31428:31:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "31450:2:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "31454:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "31440:9:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31440:19:81"
                        },
                        "variables": [
                          {
                            "name": "data",
                            "nodeType": "YulTypedName",
                            "src": "31432:4:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "31472:57:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "31495:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "31505:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "startIndex",
                                      "nodeType": "YulIdentifier",
                                      "src": "31512:10:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "31524:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "31508:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "31508:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "31501:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31501:27:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "31491:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31491:38:81"
                        },
                        "variables": [
                          {
                            "name": "deleteStart",
                            "nodeType": "YulTypedName",
                            "src": "31476:11:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "31566:23:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "31568:19:81",
                              "value": {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "31583:4:81"
                              },
                              "variableNames": [
                                {
                                  "name": "deleteStart",
                                  "nodeType": "YulIdentifier",
                                  "src": "31568:11:81"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "startIndex",
                              "nodeType": "YulIdentifier",
                              "src": "31548:10:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "31560:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "31545:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31545:20:81"
                        },
                        "nodeType": "YulIf",
                        "src": "31542:47:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "31602:41:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "31616:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "31626:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "31633:3:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "31638:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "31629:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "31629:12:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "31622:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31622:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "31612:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31612:31:81"
                        },
                        "variables": [
                          {
                            "name": "_2",
                            "nodeType": "YulTypedName",
                            "src": "31606:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "31656:24:81",
                        "value": {
                          "name": "deleteStart",
                          "nodeType": "YulIdentifier",
                          "src": "31669:11:81"
                        },
                        "variables": [
                          {
                            "name": "start",
                            "nodeType": "YulTypedName",
                            "src": "31660:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "31754:21:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "31763:5:81"
                                  },
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "31770:2:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "31756:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "31756:17:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "31756:17:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "start",
                              "nodeType": "YulIdentifier",
                              "src": "31704:5:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "31711:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "31701:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31701:13:81"
                        },
                        "nodeType": "YulForLoop",
                        "post": {
                          "nodeType": "YulBlock",
                          "src": "31715:26:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "31717:22:81",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "31730:5:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "31737:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "31726:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "31726:13:81"
                              },
                              "variableNames": [
                                {
                                  "name": "start",
                                  "nodeType": "YulIdentifier",
                                  "src": "31717:5:81"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nodeType": "YulBlock",
                          "src": "31697:3:81",
                          "statements": []
                        },
                        "src": "31693:82:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "31343:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31348:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "31340:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31340:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "31337:448:81"
                }
              ]
            },
            "name": "clean_up_bytearray_end_slots_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "31299:5:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "31306:3:81",
                "type": ""
              },
              {
                "name": "startIndex",
                "nodeType": "YulTypedName",
                "src": "31311:10:81",
                "type": ""
              }
            ],
            "src": "31246:545:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31881:81:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "31891:65:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "data",
                            "nodeType": "YulIdentifier",
                            "src": "31906:4:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "31924:1:81",
                                        "type": "",
                                        "value": "3"
                                      },
                                      {
                                        "name": "len",
                                        "nodeType": "YulIdentifier",
                                        "src": "31927:3:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "31920:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31920:11:81"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "31937:1:81",
                                        "type": "",
                                        "value": "0"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nodeType": "YulIdentifier",
                                      "src": "31933:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31933:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shr",
                                  "nodeType": "YulIdentifier",
                                  "src": "31916:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "31916:24:81"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "31912:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "31912:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "31902:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31902:40:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31948:1:81",
                            "type": "",
                            "value": "1"
                          },
                          {
                            "name": "len",
                            "nodeType": "YulIdentifier",
                            "src": "31951:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "31944:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31944:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "31899:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31899:57:81"
                  },
                  "variableNames": [
                    {
                      "name": "used",
                      "nodeType": "YulIdentifier",
                      "src": "31891:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "extract_used_part_and_set_length_of_short_byte_array",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "31858:4:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "31864:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "used",
                "nodeType": "YulTypedName",
                "src": "31872:4:81",
                "type": ""
              }
            ],
            "src": "31796:166:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32070:1103:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "32111:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "32113:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32113:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "32113:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "32086:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32091:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "32083:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32083:27:81"
                  },
                  "nodeType": "YulIf",
                  "src": "32080:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "32186:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "32224:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "32218:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "32218:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "32192:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32192:38:81"
                      },
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "32232:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "32142:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32142:94:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32142:94:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "32245:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "32262:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "32249:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "32306:609:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "32320:32:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "32339:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "32348:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "32344:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "32344:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "32335:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32335:17:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "32324:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "32365:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "32409:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "32379:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32379:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "32369:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "32427:18:81",
                            "value": {
                              "name": "srcOffset",
                              "nodeType": "YulIdentifier",
                              "src": "32436:9:81"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "32431:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "32515:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "32540:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "32565:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "32570:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "32561:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "32561:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "calldataload",
                                          "nodeType": "YulIdentifier",
                                          "src": "32548:12:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "32548:33:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "32533:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32533:49:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "32533:49:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "32599:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "32613:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "32621:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "32609:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32609:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "32599:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "32640:33:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "32657:9:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "32668:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "32653:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32653:20:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "32640:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "32469:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "32472:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "32466:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32466:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "32481:21:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "32483:17:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "32492:1:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "32495:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "32488:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32488:12:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "32483:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "32462:3:81",
                              "statements": []
                            },
                            "src": "32458:229:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "32732:127:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "32757:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "name": "src",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "32786:3:81"
                                                  },
                                                  {
                                                    "name": "srcOffset",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "32791:9:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "add",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "32782:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "32782:19:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "calldataload",
                                              "nodeType": "YulIdentifier",
                                              "src": "32769:12:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "32769:33:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "32820:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "len",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "32823:3:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "32816:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "32816:11:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "32829:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "32812:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "32812:21:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "32839:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "32835:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "32835:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "32808:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "32808:34:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "32804:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "32804:39:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "32765:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "32765:79:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "32750:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32750:95:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "32750:95:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "32706:7:81"
                                },
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "32715:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "32703:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32703:16:81"
                            },
                            "nodeType": "YulIf",
                            "src": "32700:159:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "32879:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "32893:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "len",
                                          "nodeType": "YulIdentifier",
                                          "src": "32896:3:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "32889:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "32889:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "32902:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "32885:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "32885:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "32872:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32872:33:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "32872:33:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "32299:616:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32304:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "32932:235:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "32946:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32959:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "32950:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "32992:74:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "33010:42:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "33036:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "33041:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "33032:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "33032:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "calldataload",
                                      "nodeType": "YulIdentifier",
                                      "src": "33019:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "33019:33:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "33010:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "len",
                              "nodeType": "YulIdentifier",
                              "src": "32976:3:81"
                            },
                            "nodeType": "YulIf",
                            "src": "32973:93:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "33086:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "33145:5:81"
                                    },
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "33152:3:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "33092:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "33092:64:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "33079:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "33079:78:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "33079:78:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "32924:243:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "32282:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32287:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "32279:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32279:11:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "32272: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": "32050:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "32056:3:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "32061:3:81",
                "type": ""
              }
            ],
            "src": "31967:1206:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33256:233:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "33273:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "33278:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33266:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33266:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33266:19:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "33329:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33338:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33341:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "33331:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33331:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33331:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "33300:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "33316:3:81",
                                "type": "",
                                "value": "251"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "33321:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "33312:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "33312:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33325:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "33308:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33308:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "33297:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33297:31:81"
                  },
                  "nodeType": "YulIf",
                  "src": "33294:51:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "33354:30:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33374:1:81",
                        "type": "",
                        "value": "5"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "33377:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nodeType": "YulIdentifier",
                      "src": "33370:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33370:14:81"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nodeType": "YulTypedName",
                      "src": "33358:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "33410:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33415:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33406:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33406:14:81"
                      },
                      {
                        "name": "start",
                        "nodeType": "YulIdentifier",
                        "src": "33422:5:81"
                      },
                      {
                        "name": "length_1",
                        "nodeType": "YulIdentifier",
                        "src": "33429:8:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "33393:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33393:45:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33393:45:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "33447:36:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "33462:3:81"
                          },
                          {
                            "name": "length_1",
                            "nodeType": "YulIdentifier",
                            "src": "33467:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33458:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33458:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33478:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "33454:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33454:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "33447:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_uint256_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "start",
                "nodeType": "YulTypedName",
                "src": "33225:5:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "33232:6:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "33240:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "33248:3:81",
                "type": ""
              }
            ],
            "src": "33178:311:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33759:663:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "33769:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33787:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33798:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "33783:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33783:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "33773:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33817:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33828:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33810:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33810:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33810:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "33840:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "33851:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "33844:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "33873:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "33881:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33866:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33866:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33866:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "33897:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33908:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33919:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "33904:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33904:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "33897:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "33931:20:81",
                  "value": {
                    "name": "value0",
                    "nodeType": "YulIdentifier",
                    "src": "33945:6:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "33935:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "33960:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "33969:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "33964:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "34028:255:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "34042:33:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "34068:6:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "34055:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34055:20:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "34046:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "34113:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "34088:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34088:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34088:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "34139:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "34148:5:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "34163:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "34168:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "34159:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "34159:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "34172:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "34155:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "34155:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "34144:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "34144:31:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "34132:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34132:44:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34132:44:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "34189:14:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "34199:4:81",
                          "type": "",
                          "value": "0x20"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "34193:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "34216:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "34227:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "34232:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "34223:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34223:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "34216:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "34248:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "34262:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "34270:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "34258:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34258:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "34248:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "33990:1:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "33993:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "33987:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33987:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "34001:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "34003:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "34012:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "34015:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "34008:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34008:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "34003:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "33983:3:81",
                    "statements": []
                  },
                  "src": "33979:304:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34303:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34314:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34299:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34299:20:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "34325:3:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34330:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "34321:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34321:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34292:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34292:49:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34292:49:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34350:66:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "34396:6:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "34404:6:81"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "34412:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "34358:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34358:58:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "34350:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_payable_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_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": "33704:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "33715:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "33723:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "33731:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "33739:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "33750:4:81",
                "type": ""
              }
            ],
            "src": "33494:928:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34601:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34618:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34629:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34611:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34611:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34611:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34652:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34663:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34648:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34648:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34668:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34641:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34641:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34641:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34691:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34702:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34687:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34687:18:81"
                      },
                      {
                        "hexValue": "4d6f7265207468616e203120726f79616c7479207265636569766572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34707:30:81",
                        "type": "",
                        "value": "More than 1 royalty receiver"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34680:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34680:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34680:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34747:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34759:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34770:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "34755:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34755:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "34747:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_74694d19c1b4be9a45fa733d1aaae2782afce905305cd809636e222af28aa3f3__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "34578:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "34592:4:81",
                "type": ""
              }
            ],
            "src": "34427:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34836:116:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "34846:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "34861:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "34864:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "mul",
                      "nodeType": "YulIdentifier",
                      "src": "34857:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34857:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "product",
                      "nodeType": "YulIdentifier",
                      "src": "34846:7:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "34924:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "34926:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34926:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34926:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "nodeType": "YulIdentifier",
                                "src": "34895:1:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "34888:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "34888:9:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "y",
                                "nodeType": "YulIdentifier",
                                "src": "34902:1:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "product",
                                    "nodeType": "YulIdentifier",
                                    "src": "34909:7:81"
                                  },
                                  {
                                    "name": "x",
                                    "nodeType": "YulIdentifier",
                                    "src": "34918:1:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "div",
                                  "nodeType": "YulIdentifier",
                                  "src": "34905:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "34905:15:81"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nodeType": "YulIdentifier",
                              "src": "34899:2:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "34899:22:81"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nodeType": "YulIdentifier",
                          "src": "34885:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34885:37:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "34878:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34878:45:81"
                  },
                  "nodeType": "YulIf",
                  "src": "34875:71:81"
                }
              ]
            },
            "name": "checked_mul_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "34815:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "34818:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "product",
                "nodeType": "YulTypedName",
                "src": "34824:7:81",
                "type": ""
              }
            ],
            "src": "34784:168:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34989:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35006:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35013:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35018:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "35009:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35009:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34999:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34999:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34999:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35046:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35049:4:81",
                        "type": "",
                        "value": "0x12"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35039:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35039:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35039:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35070:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35073:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "35063:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35063:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35063:15:81"
                }
              ]
            },
            "name": "panic_error_0x12",
            "nodeType": "YulFunctionDefinition",
            "src": "34957:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35135:171:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "35166:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35187:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "35194:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "35199:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "35190:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "35190:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "35180:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35180:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35180:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35231:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35234:4:81",
                              "type": "",
                              "value": "0x12"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "35224:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35224:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35224:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35259:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35262:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "35252:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35252:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35252:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "35155:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "35148:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35148:9:81"
                  },
                  "nodeType": "YulIf",
                  "src": "35145:132:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35286:14:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "35295:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "35298:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "div",
                      "nodeType": "YulIdentifier",
                      "src": "35291:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35291:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nodeType": "YulIdentifier",
                      "src": "35286:1:81"
                    }
                  ]
                }
              ]
            },
            "name": "checked_div_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "35120:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "35123:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nodeType": "YulTypedName",
                "src": "35129:1:81",
                "type": ""
              }
            ],
            "src": "35089:217:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35485:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35502:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35513:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35495:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35495:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35495:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35536:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35547:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35532:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35532:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35552:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35525:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35525:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35525:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35575:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35586:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35571:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35571:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35591:34:81",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35564:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35564:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35564:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35635:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35647:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35658:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35643:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35643:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "35635:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "35462:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "35476:4:81",
                "type": ""
              }
            ],
            "src": "35311:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35846:230:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35863:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35874:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35856:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35856:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35856:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35897:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35908:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35893:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35893:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35913:2:81",
                        "type": "",
                        "value": "40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35886:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35886:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35886:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35936:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35947:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35932:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35932:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2069647320616e6420616d6f756e7473206c656e67746820",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35952:34:81",
                        "type": "",
                        "value": "ERC1155: ids and amounts length "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35925:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35925:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35925:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36007:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36018:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36003:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36003:18:81"
                      },
                      {
                        "hexValue": "6d69736d61746368",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36023:10:81",
                        "type": "",
                        "value": "mismatch"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35996:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35996:38:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35996:38:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36043:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36055:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36066:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36051:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36051:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "36043:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "35823:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "35837:4:81",
                "type": ""
              }
            ],
            "src": "35672:404:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36255:227:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36272:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36283:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36265:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36265:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36265:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36306:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36317:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36302:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36302:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36322:2:81",
                        "type": "",
                        "value": "37"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36295:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36295:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36295:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36345:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36356:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36341:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36341:18:81"
                      },
                      {
                        "hexValue": "455243313135353a207472616e7366657220746f20746865207a65726f206164",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36361:34:81",
                        "type": "",
                        "value": "ERC1155: transfer to the zero ad"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36334:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36334:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36334:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36416:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36427:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36412:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36412:18:81"
                      },
                      {
                        "hexValue": "6472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36432:7:81",
                        "type": "",
                        "value": "dress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36405:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36405:35:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36405:35:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36449:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36461:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36472:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36457:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36457:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "36449:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "36232:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "36246:4:81",
                "type": ""
              }
            ],
            "src": "36081:401:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36661:232:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36678:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36689:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36671:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36671:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36671:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36712:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36723:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36708:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36708:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36728:2:81",
                        "type": "",
                        "value": "42"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36701:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36701:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36701:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36751:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36762:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36747:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36747:18:81"
                      },
                      {
                        "hexValue": "455243313135353a20696e73756666696369656e742062616c616e636520666f",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36767:34:81",
                        "type": "",
                        "value": "ERC1155: insufficient balance fo"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36740:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36740:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36740:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36822:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36833:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36818:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36818:18:81"
                      },
                      {
                        "hexValue": "72207472616e73666572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36838:12:81",
                        "type": "",
                        "value": "r transfer"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36811:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36811:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36811:40:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36860:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36872:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36883:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36868:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36868:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "36860:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "36638:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "36652:4:81",
                "type": ""
              }
            ],
            "src": "36487:406:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36946:77:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "36956:16:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "36967:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "36970:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36963:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36963:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nodeType": "YulIdentifier",
                      "src": "36956:3:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36995:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "36997:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36997:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36997:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "36987:1:81"
                      },
                      {
                        "name": "sum",
                        "nodeType": "YulIdentifier",
                        "src": "36990:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "36984:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36984:10:81"
                  },
                  "nodeType": "YulIf",
                  "src": "36981:36:81"
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "36929:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "36932:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nodeType": "YulTypedName",
                "src": "36938:3:81",
                "type": ""
              }
            ],
            "src": "36898:125:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "37257:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "37274:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37285:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37267:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37267:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37267:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37297:70:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "37340:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37352:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37363:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37348:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37348:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "37311:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37311:56:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "37301:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37387:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37398:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37383:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37383:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "37407:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37415:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "37403:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37403:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37376:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37376:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37376:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37435:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "37472:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "37480:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "37443:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37443:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "37435:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "37218:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "37229:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "37237:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "37248:4:81",
                "type": ""
              }
            ],
            "src": "37028:465:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "37672:156:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "37689:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37700:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37682:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37682:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37682:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37723:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37734:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37719:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37719:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37739:1:81",
                        "type": "",
                        "value": "7"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37712:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37712:29:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37712:29:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37761:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37772:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37757:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37757:18:81"
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "37777:9:81",
                        "type": "",
                        "value": "Invalid"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37750:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37750:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37750:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37796:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "37808:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37819:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "37804:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37804:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "37796:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "37649:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "37663:4:81",
                "type": ""
              }
            ],
            "src": "37498:330:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38007:181:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38024:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38035:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38017:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38017:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38017:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38058:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38069:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38054:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38054:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38074:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38047:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38047:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38047:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38097:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38108:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38093:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38093:18:81"
                      },
                      {
                        "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "38113:33:81",
                        "type": "",
                        "value": "ReentrancyGuard: reentrant call"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38086:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38086:61:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38086:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "38156:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38168:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38179:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "38164:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38164:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "38156:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "37984:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "37998:4:81",
                "type": ""
              }
            ],
            "src": "37833:355:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38242:79:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "38252:17:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "38264:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "38267:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "38260:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38260:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "38252:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "38293:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "38295:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "38295:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "38295:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "38284:4:81"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "38290:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "38281:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38281:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "38278:37:81"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "38224:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "38227:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "38233:4:81",
                "type": ""
              }
            ],
            "src": "38193:128:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38500:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38517:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38528:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38510:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38510:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38510:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38551:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38562:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38547:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38547:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38567:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38540:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38540:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38540:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38590:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38601:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38586:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38586:18:81"
                      },
                      {
                        "hexValue": "4d69736d61746368656420746f6b656e206f726967696e61746f7273",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "38606:30:81",
                        "type": "",
                        "value": "Mismatched token originators"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38579:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38579:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38579:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "38646:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38658:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38669:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "38654:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38654:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "38646:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_949602a3a8201646aa1cfd4aa9eeb487c03c2df49971f81c096e783331adde02__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "38477:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "38491:4:81",
                "type": ""
              }
            ],
            "src": "38326:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38960:339:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38977:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "38992:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "39008:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "39013:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "39004:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "39004:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "39017:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "39000:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "39000:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "38988:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38988:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38970:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38970:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38970:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39041:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39052:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39037:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39037:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39057:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39030:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39030:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39030:30:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39069:87:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "39121:6:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "39129:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39141:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39152:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39137:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39137:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "39083:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39083:73:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "39073:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39176:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39187:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39172:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39172:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "39196:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39204:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "39192:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39192:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39165:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39165:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39165:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "39224:69:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "39270:6:81"
                      },
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "39278:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "39286:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "39232:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39232:61:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "39224:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "38897:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "38908:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "38916:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "38924:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "38932:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "38940:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "38951:4:81",
                "type": ""
              }
            ],
            "src": "38683:616:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "39478:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "39495:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39506:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39488:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39488:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39488:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39529:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39540:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39525:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39525:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39545:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39518:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39518:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39518:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39568:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39579:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39564:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39564:18:81"
                      },
                      {
                        "hexValue": "4d757374206265207265676973746572656420657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "39584:30:81",
                        "type": "",
                        "value": "Must be registered extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39557:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39557:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39557:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "39624:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "39636:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39647:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "39632:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39632:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "39624:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5feba5446d49a024c011d96fb2b4cea222ce6e949e033fe53cd137156df8a35f__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "39455:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "39469:4:81",
                "type": ""
              }
            ],
            "src": "39304:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "39835:233:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "39852:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39863:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39845:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39845:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39845:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39886:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39897:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39882:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39882:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39902:2:81",
                        "type": "",
                        "value": "43"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39875:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39875:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39875:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39925:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39936:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39921:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39921:18:81"
                      },
                      {
                        "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "39941:34:81",
                        "type": "",
                        "value": "Initializable: contract is not i"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39914:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39914:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39914:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39996:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40007:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39992:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39992:18:81"
                      },
                      {
                        "hexValue": "6e697469616c697a696e67",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40012:13:81",
                        "type": "",
                        "value": "nitializing"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39985:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39985:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39985:41:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40035:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40047:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40058:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40043:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40043:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "40035:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "39812:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "39826:4:81",
                "type": ""
              }
            ],
            "src": "39661:407:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "40247:231:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40264:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40275:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40257:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40257:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40257:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40298:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40309:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40294:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40294:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40314:2:81",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40287:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40287:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40287:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40337:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40348:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40333:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40333:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2073657474696e6720617070726f76616c20737461747573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40353:34:81",
                        "type": "",
                        "value": "ERC1155: setting approval status"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40326:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40326:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40326:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40408:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40419:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40404:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40404:18:81"
                      },
                      {
                        "hexValue": "20666f722073656c66",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40424:11:81",
                        "type": "",
                        "value": " for self"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40397:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40397:39:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40397:39:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40445:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40457:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40468:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40453:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40453:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "40445:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "40224:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "40238:4:81",
                "type": ""
              }
            ],
            "src": "40073:405:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "40558:646:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "40607:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40616:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40619:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "40609:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40609:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40609:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "40586:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "40594:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "40582:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "40582:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "40601:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "40578:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40578:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "40571:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40571:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "40568:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40632:23:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "40648:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "40642:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40642:13:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "40636:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40664:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "40674:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "40668:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40687:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "40737:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "40697:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40697:43:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "40691:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40749:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40769:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "40763:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40763:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "40753:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "40801:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "40809:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "40781:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40781:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40781:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40821:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "40832:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "40825:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "40854:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "40862:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40847:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40847:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40847:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40874:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "40885:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "40893:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40881:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40881:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "40874:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40905:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "40927:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "40939:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "40942:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "40935:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "40935:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40923:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40923:23:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "40948:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40919:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40919:32:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "40909:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "40979:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40988:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40991:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "40981:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40981:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40981:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "40966:6:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "40974:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "40963:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40963:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "40960:35:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41004:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "41019:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "41027:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41015:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41015:15:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "41008:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "41095:79:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "41116:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "41127:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "41121:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "41121:10:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "41109:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41109:23:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "41109:23:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "41145:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "41156:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "41161:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "41152:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41152:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "41145:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "41050:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "41055:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "41047:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41047:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "41063:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "41065:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "41076:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "41081:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "41072:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41072:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "41065:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "41043:3:81",
                    "statements": []
                  },
                  "src": "41039:135:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "41183:15:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "41192:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "41183:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "40532:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "40540:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "40548:5:81",
                "type": ""
              }
            ],
            "src": "40483:721:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41365:1123:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "41411:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41420:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41423:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "41413:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41413:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "41413:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "41386:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41395:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "41382:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41382:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41407:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "41378:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41378:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "41375:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41436:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41456:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "41450:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41450:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "41440:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41475:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "41485:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "41479:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "41530:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41539:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41542:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "41532:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41532:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "41532:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "41518:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "41526:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "41515:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41515:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "41512:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41555:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41569:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "41580:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41565:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41565:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "41559:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "41635:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41644:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41647:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "41637:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41637:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "41637:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "41614:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "41618:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "41610:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "41610:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "41625:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "41606:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41606:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "41599:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41599:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "41596:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41660:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "41676:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "41670:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41670:9:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "41664:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41688:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "41698:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "41692:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41711:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "41761:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "41721:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41721:43:81"
                  },
                  "variables": [
                    {
                      "name": "_5",
                      "nodeType": "YulTypedName",
                      "src": "41715:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41773:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41793:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "41787:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41787:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "41777:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "41825:6:81"
                      },
                      {
                        "name": "_5",
                        "nodeType": "YulIdentifier",
                        "src": "41833:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "41805:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41805:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41805:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41845:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "41856:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "41849:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "41878:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "41886:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41871:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41871:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41871:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "41898:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "41909:6:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "41917:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41905:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41905:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "41898:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41929:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "41951:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "41959:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "41962:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "41955:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "41955:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41947:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41947:19:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "41968:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41943:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41943:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "41933:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "42003:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42012:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42015:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "42005:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42005:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42005:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "41986:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "41994:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "41983:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41983:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "41980:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "42028:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "42043:2:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "42047:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "42039:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42039:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "42032:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "42115:154:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "42129:23:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "42148:3:81"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "42142:5:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42142:10:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "42133:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "42190:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "42165:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42165:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42165:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "42216:3:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "42221:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "42209:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42209:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42209:18:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "42240:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "42251:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "42256:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "42247:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42247:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "42240:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "42070:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "42075:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "42067:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42067:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "42083:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "42085:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "42096:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "42101:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "42092:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42092:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "42085:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "42063:3:81",
                    "statements": []
                  },
                  "src": "42059:210:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42278:16:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "42288:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "42278:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "42303:41:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42329:9:81"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "42340:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42325:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42325:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "42319:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42319:25:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "42307:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "42373:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42382:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42385:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "42375:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42375:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42375:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "42359:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "42369:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "42356:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42356:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "42353:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42398:84:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42452:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "42463:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42448:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42448:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "42474:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn_fromMemory",
                      "nodeType": "YulIdentifier",
                      "src": "42408:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42408:74:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "42398:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_payable_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "41323:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "41334:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "41346:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "41354:6:81",
                "type": ""
              }
            ],
            "src": "41209:1279:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42667:167:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42684:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42695:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42677:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42677:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42677:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42718:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42729:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42714:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42714:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42734:2:81",
                        "type": "",
                        "value": "17"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42707:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42707:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42707:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42757:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42768:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42753:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42753:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "42773:19:81",
                        "type": "",
                        "value": "Invalid extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42746:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42746:47:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42746:47:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42802:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42814:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42825:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "42810:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42810:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "42802:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_39736ad8edb82cab8fab418c447e0b8998fe764b7748a15a1ca217315b23256b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42644:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "42658:4:81",
                "type": ""
              }
            ],
            "src": "42493:341:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43013:165:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43030:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43041:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43023:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43023:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43023:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43064:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43075:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43060:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43060:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43080:2:81",
                        "type": "",
                        "value": "15"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43053:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43053:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43053:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43103:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43114:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43099:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43099:18:81"
                      },
                      {
                        "hexValue": "496e76616c69642061646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "43119:17:81",
                        "type": "",
                        "value": "Invalid address"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43092:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43092:45:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43092:45:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "43146:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43158:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43169:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43154:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43154:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43146:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42990:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43004:4:81",
                "type": ""
              }
            ],
            "src": "42839:339:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43312:119:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "43322:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43334:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43345:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43330:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43330:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43322:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43364:9:81"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "43375:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43357:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43357:25:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43357:25:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43402:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43413:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43398:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43398:18:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "43418:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43391:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43391:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43391:34:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43273:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "43284:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "43292:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43303:4:81",
                "type": ""
              }
            ],
            "src": "43183:248:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43610:173:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43627:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43638:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43620:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43620:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43620:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43661:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43672:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43657:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43657:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43677:2:81",
                        "type": "",
                        "value": "23"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43650:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43650:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43650:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43700:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43711:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43696:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43696:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420746f74616c20726f79616c74696573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "43716:25:81",
                        "type": "",
                        "value": "Invalid total royalties"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43689:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43689:53:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43689:53:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "43751:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43763:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43774:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43759:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43759:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43751:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_bdeae8abc7e2f0e6881f3618c066b1b8be917729ca4a34e4ef407f79dd9f7a90__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43587:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43601:4:81",
                "type": ""
              }
            ],
            "src": "43436:347:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43866:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "43912:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "43921:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "43924:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "43914:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "43914:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "43914:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "43887:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43896:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "43883:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43883:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43908:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "43879:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43879:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "43876:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "43937:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43963:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "43950:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43950:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "43941:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "44007:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "43982:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43982:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43982:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "44022:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "44032:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "44022:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address_payable",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43832:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "43843:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "43855:6:81",
                "type": ""
              }
            ],
            "src": "43788:255:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "44080:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44097:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44104:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44109:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "44100:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44100:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44090:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44090:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44090:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44137:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44140:4:81",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44130:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44130:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44130:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44161:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44164:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "44154:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44154:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44154:15:81"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "44048:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "44511:496:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44521:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44539:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44544:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "44535:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44535:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44548:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "44531:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44531:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "44525:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "44566:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "44581:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "44589:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "44577:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44577:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44559:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44559:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44559:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44613:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44624:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44609:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44609:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "44633:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "44641:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "44629:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44629:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44602:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44602:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44602:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44665:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44676:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44661:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44661:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44681:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44654:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44654:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44654:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44694:71:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "44737:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44749:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44760:3:81",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44745:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44745:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "44708:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44708:57:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "44698:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44785:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44796:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44781:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44781:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "44805:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44813:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "44801:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44801:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44774:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44774:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44774:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44833:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "44876:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "44884:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "44847:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44847:44:81"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nodeType": "YulTypedName",
                      "src": "44837:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44911:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44922:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44907:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44907:19:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_2",
                            "nodeType": "YulIdentifier",
                            "src": "44932:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44940:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "44928:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44928:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44900:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44900:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44900:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "44960:41:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "44986:6:81"
                      },
                      {
                        "name": "tail_2",
                        "nodeType": "YulIdentifier",
                        "src": "44994:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "44968:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44968:33:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "44960:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "44448:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "44459:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "44467:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "44475:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "44483:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "44491:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "44502:4:81",
                "type": ""
              }
            ],
            "src": "44180:827:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "45092:169:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "45138:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45147:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45150:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "45140:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "45140:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "45140:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "45113:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "45122:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "45109:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45109:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45134:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "45105:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45105:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45102:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45163:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "45182:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "45176:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45176:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "45167:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "45225:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "45201:23:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45201:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45201:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "45240:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "45250:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "45240:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "45058:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "45069:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "45081:6:81",
                "type": ""
              }
            ],
            "src": "45012:249:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "45309:136:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "45354:85:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45383:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45386:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45389:1:81",
                              "type": "",
                              "value": "4"
                            }
                          ],
                          "functionName": {
                            "name": "returndatacopy",
                            "nodeType": "YulIdentifier",
                            "src": "45368:14:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "45368:23:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "45368:23:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "45404:25:81",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45415:3:81",
                              "type": "",
                              "value": "224"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "45426:1:81",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "45420:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "45420:8:81"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "45411:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "45411:18:81"
                        },
                        "variableNames": [
                          {
                            "name": "sig",
                            "nodeType": "YulIdentifier",
                            "src": "45404:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [],
                        "functionName": {
                          "name": "returndatasize",
                          "nodeType": "YulIdentifier",
                          "src": "45325:14:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45325:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45343:1:81",
                        "type": "",
                        "value": "3"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "45322:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45322:23:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45319:120:81"
                }
              ]
            },
            "name": "return_data_selector",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "sig",
                "nodeType": "YulTypedName",
                "src": "45301:3:81",
                "type": ""
              }
            ],
            "src": "45266:179:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "45497:624:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "45537:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "45539:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [],
                        "functionName": {
                          "name": "returndatasize",
                          "nodeType": "YulIdentifier",
                          "src": "45513:14:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45513:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45531:4:81",
                        "type": "",
                        "value": "0x44"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "45510:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45510:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45507:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45555:21:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45573:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "45567:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45567:9:81"
                  },
                  "variables": [
                    {
                      "name": "data",
                      "nodeType": "YulTypedName",
                      "src": "45559:4:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45585:16:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45599:1:81",
                        "type": "",
                        "value": "3"
                      }
                    ],
                    "functionName": {
                      "name": "not",
                      "nodeType": "YulIdentifier",
                      "src": "45595:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45595:6:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "45589:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "45625:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45631:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "returndatasize",
                              "nodeType": "YulIdentifier",
                              "src": "45638:14:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "45638:16:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "45656:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45634:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45634:25:81"
                      }
                    ],
                    "functionName": {
                      "name": "returndatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "45610:14:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45610:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45610:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45669:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "45689:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "45683:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45683:11:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "45673:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45703:26:81",
                  "value": {
                    "arguments": [],
                    "functionName": {
                      "name": "returndatasize",
                      "nodeType": "YulIdentifier",
                      "src": "45713:14:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45713:16:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "45707:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45738:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "45748:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "45742:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "45824:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "45826:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "45784:6:81"
                          },
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "45792:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "45781:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45781:14:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "45804:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "45812:4:81",
                                "type": "",
                                "value": "0x24"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "45800:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "45800:17:81"
                          },
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "45819:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "45797:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45797:25:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "45778:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45778:45:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45775:58:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45842:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "45857:4:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "45863:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "45853:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45853:17:81"
                  },
                  "variables": [
                    {
                      "name": "msg",
                      "nodeType": "YulTypedName",
                      "src": "45846:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45879:24:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "msg",
                        "nodeType": "YulIdentifier",
                        "src": "45899:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "45893:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45893:10:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "45883:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "45930:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "45932:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "45918:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "45926:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "45915:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45915:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45912:27:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "46021:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "46023:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "msg",
                                "nodeType": "YulIdentifier",
                                "src": "45962:3:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "45967:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "45958:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "45958:16:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "45976:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45954:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45954:27:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "45991:4:81"
                              },
                              {
                                "arguments": [],
                                "functionName": {
                                  "name": "returndatasize",
                                  "nodeType": "YulIdentifier",
                                  "src": "45997:14:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "45997:16:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "45987:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "45987:27:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "46016:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45983:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45983:36:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "45951:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45951:69:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45948:82:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "46059:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "46073:6:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "46081:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "46069:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "46069:19:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46090:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46065:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46065:30:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "46039:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46039:57:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46039:57:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "46105:10:81",
                  "value": {
                    "name": "msg",
                    "nodeType": "YulIdentifier",
                    "src": "46112:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "46105:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "try_decode_error_message",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "45489:3:81",
                "type": ""
              }
            ],
            "src": "45450:671:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "46300:242:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "46317:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46328:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46310:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46310:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46310:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46351:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46362:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46347:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46347:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46367:2:81",
                        "type": "",
                        "value": "52"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46340:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46340:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46340:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46390:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46401:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46386:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46386:18:81"
                      },
                      {
                        "hexValue": "455243313135353a207472616e7366657220746f206e6f6e2d45524331313535",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "46406:34:81",
                        "type": "",
                        "value": "ERC1155: transfer to non-ERC1155"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46379:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46379:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46379:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46461:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46472:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46457:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46457:18:81"
                      },
                      {
                        "hexValue": "526563656976657220696d706c656d656e746572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "46477:22:81",
                        "type": "",
                        "value": "Receiver implementer"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46450:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46450:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46450:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "46509:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "46521:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46532:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "46517:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46517:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "46509:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_f591f7b75ffc499e05f8b34c3364b2eceff651378d9549db1d5d67c0d8255c5d__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "46277:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "46291:4:81",
                "type": ""
              }
            ],
            "src": "46126:416:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "46721:230:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "46738:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46749:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46731:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46731:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46731:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46772:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46783:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46768:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46768:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46788:2:81",
                        "type": "",
                        "value": "40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46761:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46761:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46761:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46811:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46822:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46807:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46807:18:81"
                      },
                      {
                        "hexValue": "455243313135353a204552433131353552656365697665722072656a65637465",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "46827:34:81",
                        "type": "",
                        "value": "ERC1155: ERC1155Receiver rejecte"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46800:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46800:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46800:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46882:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46893:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46878:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46878:18:81"
                      },
                      {
                        "hexValue": "6420746f6b656e73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "46898:10:81",
                        "type": "",
                        "value": "d tokens"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46871:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46871:38:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46871:38:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "46918:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "46930:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46941:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "46926:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46926:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "46918:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "46698:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "46712:4:81",
                "type": ""
              }
            ],
            "src": "46547:404:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "47130:225:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47147:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47158:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47140:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47140:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47140:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47181:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47192:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47177:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47177:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47197:2:81",
                        "type": "",
                        "value": "35"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47170:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47170:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47170:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47220:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47231:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47216:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47216:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206275726e2066726f6d20746865207a65726f2061646472",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "47236:34:81",
                        "type": "",
                        "value": "ERC1155: burn from the zero addr"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47209:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47209:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47209:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47291:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47302:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47287:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47287:18:81"
                      },
                      {
                        "hexValue": "657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "47307:5:81",
                        "type": "",
                        "value": "ess"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47280:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47280:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47280:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "47322:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47334:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47345:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "47330:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47330:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "47322:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "47107:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "47121:4:81",
                "type": ""
              }
            ],
            "src": "46956:399:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "47534:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47551:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47562:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47544:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47544:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47544:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47585:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47596:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47581:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47581:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47601:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47574:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47574:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47574:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47624:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47635:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47620:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47620:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206275726e20616d6f756e7420657863656564732062616c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "47640:34:81",
                        "type": "",
                        "value": "ERC1155: burn amount exceeds bal"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47613:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47613:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47613:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47695:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47706:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47691:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47691:18:81"
                      },
                      {
                        "hexValue": "616e6365",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "47711:6:81",
                        "type": "",
                        "value": "ance"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47684:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47684:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47684:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "47727:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47739:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47750:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "47735:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47735:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "47727:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "47511:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "47525:4:81",
                "type": ""
              }
            ],
            "src": "47360:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "47861:1256:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "47871:24:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "47891:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "47885:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47885:10:81"
                  },
                  "variables": [
                    {
                      "name": "newLen",
                      "nodeType": "YulTypedName",
                      "src": "47875:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "47938:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "47940:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "47940:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "47940:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "47910:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47918:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "47907:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47907:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "47904:56:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "48013:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "48051:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "48045:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "48045:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "48019:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48019:38:81"
                      },
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "48059:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "47969:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47969:97:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47969:97:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "48075:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "48092:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "48079:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "48102:23:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "48121:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "srcOffset_1",
                      "nodeType": "YulTypedName",
                      "src": "48106:11:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "48134:24:81",
                  "value": {
                    "name": "srcOffset_1",
                    "nodeType": "YulIdentifier",
                    "src": "48147:11:81"
                  },
                  "variableNames": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulIdentifier",
                      "src": "48134:9:81"
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "48204:656:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "48218:35:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "newLen",
                                  "nodeType": "YulIdentifier",
                                  "src": "48237:6:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "48249:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "48245:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "48245:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "48233:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "48233:20:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "48222:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "48266:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "48310:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "48280:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "48280:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "48270:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "48328:10:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "48337:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "48332:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "48415:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "48440:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "48458:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "48463:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "48454:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "48454:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "mload",
                                          "nodeType": "YulIdentifier",
                                          "src": "48448:5:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "48448:26:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "48433:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48433:42:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "48433:42:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "48492:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "48506:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "48514:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "48502:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48502:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "48492:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "48533:40:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "48550:9:81"
                                      },
                                      {
                                        "name": "srcOffset_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "48561:11:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "48546:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48546:27:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "48533:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "48362:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "48365:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "48359:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "48359:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "48374:28:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "48376:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "48385:1:81"
                                      },
                                      {
                                        "name": "srcOffset_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "48388:11:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "48381:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48381:19:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "48376:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "48355:3:81",
                              "statements": []
                            },
                            "src": "48351:236:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "48635:166:81",
                              "statements": [
                                {
                                  "nodeType": "YulVariableDeclaration",
                                  "src": "48653:43:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "48680:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "48685:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "48676:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "48676:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "48670:5:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48670:26:81"
                                  },
                                  "variables": [
                                    {
                                      "name": "lastValue",
                                      "nodeType": "YulTypedName",
                                      "src": "48657:9:81",
                                      "type": ""
                                    }
                                  ]
                                },
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "48720:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "lastValue",
                                            "nodeType": "YulIdentifier",
                                            "src": "48732:9:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "48759:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "newLen",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "48762:6:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "48755:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "48755:14:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "48771:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "48751:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "48751:24:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "48781:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "48777:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "48777:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "48747:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "48747:37:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "48743:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "48743:42:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "48728:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "48728:58:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "48713:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48713:74:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "48713:74:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "48606:7:81"
                                },
                                {
                                  "name": "newLen",
                                  "nodeType": "YulIdentifier",
                                  "src": "48615:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "48603:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "48603:19:81"
                            },
                            "nodeType": "YulIf",
                            "src": "48600:201:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "48821:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "48835:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "newLen",
                                          "nodeType": "YulIdentifier",
                                          "src": "48838:6:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "48831:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "48831:14:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "48847:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "48827:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "48827:22:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "48814:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "48814:36:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "48814:36:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "48197:663:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "48202:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "48877:234:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "48891:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "48904:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "48895:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "48940:67:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "48958:35:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "48977:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "48982:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "48973:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "48973:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "48967:5:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48967:26:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "48958:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "newLen",
                              "nodeType": "YulIdentifier",
                              "src": "48921:6:81"
                            },
                            "nodeType": "YulIf",
                            "src": "48918:89:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "49027:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "49086:5:81"
                                    },
                                    {
                                      "name": "newLen",
                                      "nodeType": "YulIdentifier",
                                      "src": "49093:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "49033:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "49033:67:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "49020:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "49020:81:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "49020:81:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "48869:242:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "48177:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "48185:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "48174:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48174:14:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "48167:944:81"
                }
              ]
            },
            "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nodeType": "YulTypedName",
                "src": "47846:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "47852:3:81",
                "type": ""
              }
            ],
            "src": "47765:1352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "49457:433:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "49474:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "49489:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "49505:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "49510:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "49501:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "49501:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "49514:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "49497:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "49497:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "49485:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49485:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49467:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49467:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49467:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49538:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49549:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49534:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49534:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "49554:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49527:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49527:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49527:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "49567:71:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "49610:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49622:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49633:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49618:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49618:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "49581:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49581:57:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "49571:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49658:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49669:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49654:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49654:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "49678:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49686:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "49674:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49674:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49647:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49647:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49647:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "49706:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "49749:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "49757:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "49720:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49720:44:81"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nodeType": "YulTypedName",
                      "src": "49710:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49784:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49795:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49780:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49780:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_2",
                            "nodeType": "YulIdentifier",
                            "src": "49804:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49812:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "49800:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49800:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49773:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49773:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49773:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "49832:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "49869:6:81"
                      },
                      {
                        "name": "tail_2",
                        "nodeType": "YulIdentifier",
                        "src": "49877:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "49840:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49840:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "49832:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "49402:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "49413:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "49421:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "49429:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "49437:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "49448:4:81",
                "type": ""
              }
            ],
            "src": "49122:768:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "50126:330:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "50136:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50154:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50159:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "50150:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50150:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "50163:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "50146:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50146:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "50140:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "50181:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "50196:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "50204:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "50192:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50192:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50174:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50174:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50174:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "50228:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50239:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "50224:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50224:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "50248:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "50256:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "50244:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50244:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50217:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50217:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50217:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "50280:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50291:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "50276:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50276:18:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "50296:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50269:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50269:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50269:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "50323:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50334:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "50319:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50319:18:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "50339:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50312:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50312:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50312:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "50366:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50377:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "50362:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50362:19:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "50383:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50355:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50355:32:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50355:32:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "50396:54:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "50422:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "50434:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50445:3:81",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "50430:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50430:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "50404:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50404:46:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "50396:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "50063:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "50074:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "50082:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "50090:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "50098:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "50106:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "50117:4:81",
                "type": ""
              }
            ],
            "src": "49895:561:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "50560:103:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "50570:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "50582:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "50593:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "50578:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50578:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "50570:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "50612:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "50627:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "50639:3:81",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "50644:10:81",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "50635:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "50635:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "50623:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50623:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50605:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50605:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50605:52:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "50529:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "50540:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "50551:4:81",
                "type": ""
              }
            ],
            "src": "50461:202:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "50981:433:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "50991:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51009:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51014:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "51005:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51005:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "51018:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "51001:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51001:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "50995:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "51036:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "51051:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "51059:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "51047:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51047:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51029:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51029:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51029:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51083:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51094:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51079:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51079:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "51103:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "51111:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "51099:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51099:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51072:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51072:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51072:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51135:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51146:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51131:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51131:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nodeType": "YulIdentifier",
                            "src": "51155:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "51163:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "51151:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51151:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51124:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51124:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51124:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51187:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51198:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51183:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51183:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "51203:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51176:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51176:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51176:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "51216:71:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "51259:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51271:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51282:3:81",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51267:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51267:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "51230:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51230:57:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "51220:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51307:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51318:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51303:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51303:19:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "51328:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51336:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "51324:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51324:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51296:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51296:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51296:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "51356:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "51393:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "51401:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "51364:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51364:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "51356:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "50918:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "50929:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "50937:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "50945:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "50953:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "50961:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "50972:4:81",
                "type": ""
              }
            ],
            "src": "50668:746:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "51497:167:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "51543:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "51552:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "51555:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "51545:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "51545:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "51545:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "51518:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51527:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "51514:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51514:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "51539:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "51510:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51510:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "51507:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "51568:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "51587:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "51581:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51581:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "51572:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "51628:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "51606:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51606:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51606:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "51643:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "51653:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "51643:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "51463:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "51474:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "51486:6:81",
                "type": ""
              }
            ],
            "src": "51419:245:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "51843:176:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "51860:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "51871:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51853:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51853:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51853:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51894:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51905:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51890:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51890:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "51910:2:81",
                        "type": "",
                        "value": "26"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51883:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51883:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51883:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51933:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51944:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51929:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51929:18:81"
                      },
                      {
                        "hexValue": "457874656e73696f6e20617070726f76616c206661696c757265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "51949:28:81",
                        "type": "",
                        "value": "Extension approval failure"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51922:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51922:56:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51922:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "51987:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "51999:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "52010:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "51995:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51995:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "51987:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c3d60d7a20407b9f19afe96408b04a4d7e66044de3966b3dad84a73681c556f2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "51820:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "51834:4:81",
                "type": ""
              }
            ],
            "src": "51669:350:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "52198:223:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "52215:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "52226:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "52208:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "52208:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "52208:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "52249:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "52260:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "52245:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "52245:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "52265:2:81",
                        "type": "",
                        "value": "33"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "52238:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "52238:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "52238:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "52288:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "52299:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "52284:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "52284:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206d696e7420746f20746865207a65726f20616464726573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "52304:34:81",
                        "type": "",
                        "value": "ERC1155: mint to the zero addres"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "52277:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "52277:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "52277:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "52359:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "52370:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "52355:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "52355:18:81"
                      },
                      {
                        "hexValue": "73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "52375:3:81",
                        "type": "",
                        "value": "s"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "52348:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "52348:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "52348:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "52388:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "52400:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "52411:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "52396:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "52396:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "52388:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "52175:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "52189:4:81",
                "type": ""
              }
            ],
            "src": "52024:397:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_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_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\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        validator_revert_bytes4(value)\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 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 copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_array_uint256_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_uint256_dyn(value0, add(headStart, 32))\n    }\n    function abi_decode_string_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, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_decode_array_address_payable_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_uint256t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_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_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function finalize_allocation(memPtr, size)\n    {\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_uint256_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 _3 := array_allocation_size_array_uint256_dyn(_1)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _3)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _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 := memPtr\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := array_allocation_size_bytes(_1)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _2)\n        mstore(memPtr, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(memPtr, _1), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\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 offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), 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        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\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        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_encode_array_address_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _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        end := pos\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        mstore(headStart, 32)\n        tail := abi_encode_array_address_dyn(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { 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_payable_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_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value_1 := calldataload(add(headStart, 64))\n        validator_revert_bool(value_1)\n        value3 := value_1\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { 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 _3 := calldataload(_2)\n        let _4 := 0x20\n        let _5 := array_allocation_size_array_uint256_dyn(_3)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _5)\n        let dst := memPtr\n        mstore(memPtr, _3)\n        dst := add(memPtr, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := memPtr\n        let offset_1 := calldataload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { 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_payable_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_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$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_payable_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_payable_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_payable_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_bool(value)\n        value2 := value\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_payable_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_payable_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_payable_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\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        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_address_dyn(value0, 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        mstore(headStart, 64)\n        let tail_1 := abi_encode_array_address_dyn(value0, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn(value1, tail_1)\n    }\n    function abi_decode_tuple_t_addresst_address(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        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\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        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_415a1b99e1fd4a18cf87c08995f5a9130182e8d76e9c17c497bfebaaef9265ad__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), \"ERC1155: address zero is not a v\")\n        mstore(add(headStart, 96), \"alid owner\")\n        tail := add(headStart, 128)\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 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 abi_encode_tuple_t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"No extension for token\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Extension blacklisted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_47c72b42072ed6c647dec3a0a5c88bec44d3e901c64659bff94ecce0a0323156__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1155: caller is not token own\")\n        mstore(add(headStart, 96), \"er or approved\")\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_tuple_t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"Caller is not owner or approved\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"Invalid input\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1155: accounts and ids length\")\n        mstore(add(headStart, 96), \" mismatch\")\n        tail := add(headStart, 128)\n    }\n    function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"Invalid token\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"Token created by extension\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Token not created by this extens\")\n        mstore(add(headStart, 96), \"ion\")\n        tail := add(headStart, 128)\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_0cc452069841e70d1cdcec58868ea025555fa12c1e760cb45ef052b3f01f1f1e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"Cannot blacklist yourself\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function abi_encode_string_storage(value, pos) -> ret\n    {\n        let slotValue := sload(value)\n        let length := extract_byte_array_length(slotValue)\n        let _1 := 1\n        switch and(slotValue, _1)\n        case 0 {\n            mstore(pos, and(slotValue, not(255)))\n            ret := add(pos, mul(length, iszero(iszero(length))))\n        }\n        case 1 {\n            mstore(0, value)\n            let _2 := 0x20\n            let dataPos := keccak256(0, _2)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _2) }\n            {\n                mstore(add(pos, i), sload(dataPos))\n                dataPos := add(dataPos, _1)\n            }\n            ret := add(pos, length)\n        }\n    }\n    function abi_encode_tuple_packed_t_string_storage_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        end := abi_encode_string_storage(value1, abi_encode_string_storage(value0, pos))\n    }\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := mload(_1)\n        let _3 := array_allocation_size_bytes(_2)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _3)\n        mstore(memPtr, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_1, 32), add(memPtr, 32), _2)\n        value0 := memPtr\n    }\n    function abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let _1 := abi_encode_string_storage(value0, pos)\n        let length := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), _1, length)\n        end := add(_1, length)\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_array_uint256_dyn_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        if gt(length, sub(shl(251, 1), 1)) { revert(0, 0) }\n        let length_1 := shl(5, length)\n        calldatacopy(add(pos, 0x20), start, length_1)\n        end := add(add(pos, length_1), 0x20)\n    }\n    function abi_encode_tuple_t_array$_t_address_payable_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 64)\n        mstore(headStart, 64)\n        let pos := tail_1\n        mstore(tail_1, value1)\n        pos := add(headStart, 96)\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        tail := abi_encode_array_uint256_dyn_calldata(value2, value3, pos)\n    }\n    function abi_encode_tuple_t_stringliteral_74694d19c1b4be9a45fa733d1aaae2782afce905305cd809636e222af28aa3f3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"More than 1 royalty receiver\")\n        tail := add(headStart, 96)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\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_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"ERC1155: ids and amounts length \")\n        mstore(add(headStart, 96), \"mismatch\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC1155: transfer to the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__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), \"ERC1155: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r transfer\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_array_uint256_dyn(value0, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn(value1, tail_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 abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_949602a3a8201646aa1cfd4aa9eeb487c03c2df49971f81c096e783331adde02__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"Mismatched token originators\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 96)\n        let tail_1 := abi_encode_array_uint256_dyn_calldata(value1, value2, add(headStart, 96))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn_calldata(value3, value4, tail_1)\n    }\n    function abi_encode_tuple_t_stringliteral_5feba5446d49a024c011d96fb2b4cea222ce6e949e033fe53cd137156df8a35f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"Must be registered extension\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1155: setting approval status\")\n        mstore(add(headStart, 96), \" for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let _3 := array_allocation_size_array_uint256_dyn(_1)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _3)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _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, mload(src))\n            dst := add(dst, _2)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_array$_t_address_payable_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(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 _3 := mload(_2)\n        let _4 := 0x20\n        let _5 := array_allocation_size_array_uint256_dyn(_3)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _5)\n        let dst := memPtr\n        mstore(memPtr, _3)\n        dst := add(memPtr, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            let value := mload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := memPtr\n        let offset_1 := mload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_39736ad8edb82cab8fab418c447e0b8998fe764b7748a15a1ca217315b23256b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"Invalid extension\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"Invalid address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_bdeae8abc7e2f0e6881f3618c066b1b8be917729ca4a34e4ef407f79dd9f7a90__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"Invalid total royalties\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_address_payable(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 panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_array_uint256_dyn(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value3, tail_1)\n        mstore(add(headStart, 128), sub(tail_2, headStart))\n        tail := abi_encode_string(value4, tail_2)\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function return_data_selector() -> sig\n    {\n        if gt(returndatasize(), 3)\n        {\n            returndatacopy(0, 0, 4)\n            sig := shr(224, mload(0))\n        }\n    }\n    function try_decode_error_message() -> ret\n    {\n        if lt(returndatasize(), 0x44) { leave }\n        let data := mload(64)\n        let _1 := not(3)\n        returndatacopy(data, 4, add(returndatasize(), _1))\n        let offset := mload(data)\n        let _2 := returndatasize()\n        let _3 := 0xffffffffffffffff\n        if or(gt(offset, _3), gt(add(offset, 0x24), _2)) { leave }\n        let msg := add(data, offset)\n        let length := mload(msg)\n        if gt(length, _3) { leave }\n        if gt(add(add(msg, length), 0x20), add(add(data, returndatasize()), _1)) { leave }\n        finalize_allocation(data, add(add(offset, length), 0x20))\n        ret := msg\n    }\n    function abi_encode_tuple_t_stringliteral_f591f7b75ffc499e05f8b34c3364b2eceff651378d9549db1d5d67c0d8255c5d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 52)\n        mstore(add(headStart, 64), \"ERC1155: transfer to non-ERC1155\")\n        mstore(add(headStart, 96), \"Receiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"ERC1155: ERC1155Receiver rejecte\")\n        mstore(add(headStart, 96), \"d tokens\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"ERC1155: burn from the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685__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), \"ERC1155: burn amount exceeds bal\")\n        mstore(add(headStart, 96), \"ance\")\n        tail := add(headStart, 128)\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_array_address_dyn(value1, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value2, tail_1)\n        mstore(add(headStart, 96), sub(tail_2, headStart))\n        tail := abi_encode_array_uint256_dyn(value3, tail_2)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), 160)\n        tail := abi_encode_string(value4, add(headStart, 160))\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), 160)\n        let tail_1 := abi_encode_array_uint256_dyn(value3, add(headStart, 160))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn(value4, tail_1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_c3d60d7a20407b9f19afe96408b04a4d7e66044de3966b3dad84a73681c556f2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"Extension approval failure\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC1155: mint to the zero addres\")\n        mstore(add(headStart, 96), \"s\")\n        tail := add(headStart, 128)\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "347:14999:26:-:0;;;899:1:32;868:32;;347:14999:26;;;;;;;;;-1:-1:-1;1716:1:8;1821:7;:22;426::76;:20;:22::i;:::-;347:14999:26;;5928:279:4;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:4;;216:2:81;5987:66:4;;;198:21:81;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:81;;;338:37;392:19;;5987:66:4;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:4;6128:15;6113:30;;;;;;6162:28;;564:36:81;;;6162:28:4;;552:2:81;537:18;6162:28:4;;;;;;;6063:138;5928:279::o;422:184:81:-;347:14999:26;;;;;;",
  "deployedSourceMap": "347:14999:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1618:227:75;;;;;;:::i;:::-;;:::i;:::-;;;616:25:81;;;604:2;589:18;1618:227:75;;;;;;;;823:326:26;;;;;;:::i;:::-;;:::i;:::-;;;1203:14:81;;1196:22;1178:41;;1166:2;1151:18;823:326:26;1038:187:81;2229:126:26;;;;;;:::i;:::-;;:::i;:::-;;2516:89:75;;;:::i;:::-;;;;;;;:::i;13599:125:26:-;;;;;;:::i;:::-;;:::i;13159:138::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4201:136::-;;;;;;:::i;:::-;;:::i;11894:204::-;;;;;;:::i;:::-;;:::i;13281:115:32:-;13369:20;;-1:-1:-1;;;;;13369:20:32;13281:115;;;;;;;:::i;10657:306:26:-;;;;;;:::i;:::-;;:::i;2025:137:1:-;;;;;;:::i;:::-;;:::i;13367:166:26:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1757:205:1:-;;;;;;:::i;:::-;;:::i;3685:422:75:-;;;;;;:::i;:::-;;:::i;3819:118:26:-;;;;;;:::i;:::-;;:::i;1437:205::-;;;;;;:::i;:::-;;:::i;1156:261:1:-;;;:::i;:::-;;;;;;;:::i;11628:199:26:-;;;;;;:::i;:::-;;:::i;11029:532::-;;;;;;:::i;:::-;;:::i;2434:157::-;;;;;;:::i;:::-;;:::i;1714:239::-;;;;;;:::i;:::-;;:::i;600:156::-;;;;;;:::i;:::-;;:::i;2002:508:75:-;;;;;;:::i;:::-;;:::i;15214:130:26:-;;;;;;:::i;:::-;;:::i;3404:345::-;;;;;;:::i;:::-;;:::i;2928:158::-;;;;;;:::i;:::-;;:::i;5336:519::-;;;;;;:::i;:::-;;:::i;1485:205:1:-;;;;;;:::i;:::-;;:::i;2071:101:3:-;;;:::i;2670:177:26:-;;;;;;:::i;:::-;;:::i;3998:316:32:-;;;:::i;5933:264:26:-;;;;;;:::i;:::-;;:::i;1441:85:3:-;;;:::i;2611:93:75:-;;;:::i;4009:126:26:-;;;;;;:::i;:::-;;:::i;2772:151:75:-;;;;;;:::i;:::-;;:::i;4403:313:26:-;;;;;;:::i;:::-;;:::i;4915:163:32:-;;;;;;:::i;:::-;;:::i;12174:226:26:-;;;;;;:::i;:::-;;:::i;12933:162::-;;;;;;:::i;:::-;;:::i;12467:169::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;13805:132::-;;;;;;:::i;:::-;13883:7;13909:21;;;:12;:21;;;;;;;13805:132;2028:128;;;;;;:::i;:::-;;:::i;6280:440::-;;;;;;:::i;:::-;;:::i;3161:168::-;;;;;;:::i;:::-;;:::i;2990:166:75:-;;;;;;:::i;:::-;;:::i;4789:160:26:-;;;;;;:::i;:::-;;:::i;3223:390:75:-;;;;;;:::i;:::-;;:::i;2321:198:3:-;;;;;;:::i;:::-;;:::i;5022:236:26:-;;;;;;:::i;:::-;;:::i;562:35:33:-;;596:1;562:35;;1618:227:75;1704:7;-1:-1:-1;;;;;1731:21:75;;1723:76;;;;-1:-1:-1;;;1723:76:75;;22375:2:81;1723:76:75;;;22357:21:81;22414:2;22394:18;;;22387:30;22453:34;22433:18;;;22426:62;-1:-1:-1;;;22504:18:81;;;22497:40;22554:19;;1723:76:75;;;;;;;;;-1:-1:-1;1816:13:75;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;1816:22:75;;;;;;;;;;1618:227;;;;;:::o;823:326:26:-;966:4;989:49;1026:11;989:36;:49::i;:::-;:95;;;;1042:42;1072:11;1042:29;:42::i;:::-;989:153;;;;1088:54;1130:11;1088:41;:54::i;2229:126::-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;2318:30:26::1;2338:9;2318:19;:30::i;:::-;2229:126:::0;:::o;2516:89:75:-;2561:13;2593:5;2586:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2516:89;:::o;13599:125:26:-;13667:13;13699:18;13709:7;13699:9;:18::i;13159:138::-;13235:13;13267:23;13282:7;13267:14;:23::i;4201:136::-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;4303:27:26::1;4316:7;4325:4;;4303:12;:27::i;:::-;4201:136:::0;;;:::o;11894:204::-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;12045:46:26::1;12059:7;12068:9;;12079:11;;12045:13;:46::i;:::-;11894:204:::0;;;;;:::o;10657:306::-;10736:17;10777:24;10793:7;10777:15;:24::i;:::-;10765:36;-1:-1:-1;;;;;;10819:23:26;;10811:58;;;;-1:-1:-1;;;10811:58:26;;23576:2:81;10811:58:26;;;23558:21:81;23615:2;23595:18;;;23588:30;-1:-1:-1;;;23634:18:81;;;23627:52;23696:18;;10811:58:26;23374:346:81;10811:58:26;10888:42;:22;10920:9;10888:31;:42::i;:::-;10887:43;10879:77;;;;-1:-1:-1;;;10879:77:26;;;;;;;:::i;:::-;10657:306;;;:::o;2025:137:1:-;2087:4;2122:5;-1:-1:-1;;;;;2111:16:1;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2111:16:1;;:43;;;-1:-1:-1;2131:23:1;:7;2148:5;2131:16;:23::i;13367:166:26:-;13460:7;13469;13495:31;13511:7;13520:5;13495:15;:31::i;:::-;13488:38;;;;13367:166;;;;;;:::o;1757:205:1:-;1334:13:3;:11;:13::i;:::-;1835:23:1::1;:7;1852:5:::0;1835:16:::1;:23::i;:::-;1831:125;;;1879:31;::::0;1899:10:::1;::::0;-1:-1:-1;;;;;1879:31:1;::::1;::::0;::::1;::::0;;;::::1;1924:21;:7;1939:5:::0;1924:14:::1;:21::i;:::-;;1757:205:::0;:::o;3685:422:75:-;-1:-1:-1;;;;;3910:18:75;;3918:10;3910:18;;:56;;;3932:34;3949:4;3955:10;3932:16;:34::i;:::-;3889:149;;;;-1:-1:-1;;;3889:149:75;;;;;;;:::i;:::-;4048:52;4071:4;4077:2;4081:3;4086:7;4095:4;4048:22;:52::i;3819:118:26:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;3908:22:26::1;3925:4;;3908:16;:22::i;1437:205::-:0;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;1550:30:26::1;1570:9;1550:19;:30::i;:::-;1590:45;1609:9;1620:7;;1629:5;1590:18;:45::i;1156:261:1:-:0;1209:23;1267:16;:7;:14;:16::i;:::-;-1:-1:-1;;;;;1253:31:1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1253:31:1;;1244:40;;1299:6;1294:94;1315:16;:7;:14;:16::i;:::-;1311:1;:20;1294:94;;;1364:13;:7;1375:1;1364:10;:13::i;:::-;1352:6;1359:1;1352:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1352:25:1;;;:9;;;;;;;;;;;:25;1333:3;;;;:::i;:::-;;;;1294:94;;;;1156:261;:::o;11628:199:26:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;11762:58:26::1;11793:1;11797:9;;11808:11;;11762:22;:58::i;:::-;11628:199:::0;;;;:::o;11029:532::-;2261:21:8;:19;:21::i;:::-;-1:-1:-1;;;;;11172:21:26;::::1;11183:10;11172:21;::::0;:62:::1;;;11197:37;11214:7;11223:10;11197:16;:37::i;:::-;11164:106;;;::::0;-1:-1:-1;;;11164:106:26;;25096:2:81;11164:106:26::1;::::0;::::1;25078:21:81::0;25135:2;25115:18;;;25108:30;25174:33;25154:18;;;25147:61;25225:18;;11164:106:26::1;24894:355:81::0;11164:106:26::1;11288:33:::0;;::::1;11280:59;;;;-1:-1:-1::0;;;11280:59:26::1;;;;;;;:::i;:::-;11372:1;11353:20:::0;;;11349:159:::1;;11389:39;11395:7;11404:8;;11413:1;11404:11;;;;;;;:::i;:::-;;;;;;;11417:7;;11425:1;11417:10;;;;;;;:::i;:::-;;;;;;;11389:5;:39::i;:::-;11349:159;;;11459:38;11470:7;11479:8;;11459:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;11459:38:26::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;-1:-1:-1;11489:7:26;;-1:-1:-1;11489:7:26;;;;11459:38;::::1;::::0;11489:7;;11459:38;11489:7;11459:38;::::1;;::::0;::::1;::::0;;;;-1:-1:-1;11459:10:26::1;::::0;-1:-1:-1;;;11459:38:26:i:1;:::-;11517:37;11527:7;11536:8;;11546:7;;11517:9;:37::i;:::-;2303:20:8::0;1716:1;2809:7;:22;2629:209;2434:157:26;2518:18;:16;:18::i;:::-;2546:38;2572:4;;2578:5;2546:25;:38::i;1714:239::-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;1850:30:26::1;1870:9;1850:19;:30::i;:::-;1890:56;1909:9;1920:7;;1929:16;1890:18;:56::i;600:156::-:0;3268:19:4;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:4;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;;3377:44;3415:4;3377:29;:44::i;:::-;3376:45;:66;;;;-1:-1:-1;3425:12:4;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:4;;25798:2:81;3314:201:4;;;25780:21:81;25837:2;25817:18;;;25810:30;25876:34;25856:18;;;25849:62;-1:-1:-1;;;25927:18:81;;;25920:44;25981:19;;3314:201:4;25596:410:81;3314:201:4;3525:12;:16;;-1:-1:-1;;3525:16:4;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:4;;;;;3551:65;693:30:26::1;708:5;715:7;693:14;:30::i;:::-;733:16;:14;:16::i;:::-;3640:14:4::0;3636:99;;;3686:5;3670:21;;-1:-1:-1;;3670:21:4;;;3710:14;;-1:-1:-1;26163:36:81;;3710:14:4;;26151:2:81;26136:18;3710:14:4;;;;;;;3258:483;600:156:26;;:::o;2002:508:75:-;2153:16;2212:3;:10;2193:8;:15;:29;2185:83;;;;-1:-1:-1;;;2185:83:75;;26412:2:81;2185:83:75;;;26394:21:81;26451:2;26431:18;;;26424:30;26490:34;26470:18;;;26463:62;-1:-1:-1;;;26541:18:81;;;26534:39;26590:19;;2185:83:75;26210:405:81;2185:83:75;2279:30;2326:8;:15;-1:-1:-1;;;;;2312:30:75;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2312:30:75;;2279:63;;2358:9;2353:120;2377:8;:15;2373:1;:19;2353:120;;;2432:30;2442:8;2451:1;2442:11;;;;;;;;:::i;:::-;;;;;;;2455:3;2459:1;2455:6;;;;;;;;:::i;:::-;;;;;;;2432:9;:30::i;:::-;2413:13;2427:1;2413:16;;;;;;;;:::i;:::-;;;;;;;;;;:49;2394:3;;;:::i;:::-;;;2353:120;;;-1:-1:-1;2490:13:75;2002:508;-1:-1:-1;;;2002:508:75:o;15214:130:26:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;15303:34:26::1;15327:9;15303:23;:34::i;3404:345::-:0;3515:18;:16;:18::i;:::-;3551:30;;;3543:56;;;;-1:-1:-1;;;3543:56:26;;;;;;;:::i;:::-;3614:6;3609:134;3622:19;;;3609:134;;;3658:43;3680:8;;3689:1;3680:11;;;;;;;:::i;:::-;;;;;;;3693:4;;3698:1;3693:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;3658:21;:43::i;:::-;3727:3;;3609:134;;2928:158;3016:18;:16;:18::i;:::-;3044:35;3072:6;;3044:27;:35::i;5336:519::-;2261:21:8;:19;:21::i;:::-;987:10:1::1;976:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;976:21:1::1;;:53;;;-1:-1:-1::0;1001:28:1::1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1::0;;;968:102:1::1;;;;;;;:::i;:::-;5508:6:26::2;5503:288;5516:19:::0;;::::2;5503:288;;;5552:15;5570:8;;5579:1;5570:11;;;;;;;:::i;:::-;;;;;;;5552:29;;5613:1;5603:7;:11;:37;;;;;5629:11;;5618:7;:22;;5603:37;5595:63;;;;-1:-1:-1::0;;;5595:63:26::2;;;;;;;:::i;:::-;5716:1;5680:24;5696:7:::0;5680:15:::2;:24::i;:::-;-1:-1:-1::0;;;;;5680:38:26::2;;5672:77;;;::::0;-1:-1:-1;;;5672:77:26;;27691:2:81;5672:77:26::2;::::0;::::2;27673:21:81::0;27730:2;27710:18;;;27703:30;-1:-1:-1;;;27749:18:81;;;27742:56;27815:18;;5672:77:26::2;27489:350:81::0;5672:77:26::2;-1:-1:-1::0;5775:3:26::2;;5503:288;;;;5800:48;5822:1;5826:2;;5830:8;;5840:7;;5800:13;:48::i;:::-;2303:20:8::0;1716:1;2809:7;:22;2629:209;2303:20;5336:519:26;;;;;;:::o;1485:205:1:-;1334:13:3;:11;:13::i;:::-;1565:23:1::1;:7;1582:5:::0;1565:16:::1;:23::i;:::-;1560:124;;1609:32;::::0;1630:10:::1;::::0;-1:-1:-1;;;;;1609:32:1;::::1;::::0;::::1;::::0;;;::::1;1655:18;:7;1667:5:::0;1655:11:::1;:18::i;2071:101:3:-:0;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2670:177:26:-;2770:18;:16;:18::i;:::-;2798:42;2824:4;;2830:9;2798:25;:42::i;3998:316:32:-;4055:27;4121:20;:11;:18;:20::i;:::-;-1:-1:-1;;;;;4107:35:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4107:35:32;;4094:48;;4157:6;4152:129;4169:20;:11;:18;:20::i;:::-;4165:1;:24;4152:129;;;4222:17;:11;4237:1;4222:14;:17::i;:::-;4206:10;4217:1;4206:13;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4206:33:32;;;:13;;;;;;;;;;;:33;4265:3;;4152:129;;5933:264:26;6079:25;2261:21:8;:19;:21::i;:::-;6116:18:26::1;:16;:18::i;:::-;6151:39;6160:10;6172:2;;6176:7;;6185:4;;6151:8;:39::i;:::-;6144:46;;2303:20:8::0;1716:1;2809:7;:22;2629:209;2303:20;5933:264:26;;;;;;;;:::o;1441:85:3:-;1513:6;;-1:-1:-1;;;;;1513:6:3;;1441:85::o;2611:93:75:-;2658:13;2690:7;2683:14;;;;;:::i;4009:126:26:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;4102:26:26::1;4121:6;;4102:18;:26::i;2772:151:75:-:0;2866:50;2885:10;2897:8;2907;2866:18;:50::i;4403:313:26:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;4527:30:26;;::::1;4519:56;;;;-1:-1:-1::0;;;4519:56:26::1;;;;;;;:::i;:::-;4590:6;4585:125;4598:19:::0;;::::1;4585:125;;;4634:34;4647:8;;4656:1;4647:11;;;;;;;:::i;:::-;;;;;;;4660:4;;4665:1;4660:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4634:12;:34::i;:::-;4694:3;;4585:125;;4915:163:32::0;4994:18;:16;:18::i;:::-;5022:49;5051:10;5063:7;5022:28;:49::i;12174:226:26:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;12336:57:26::1;12359:9;12370;;12381:11;;12336:22;:57::i;12933:162::-:0;13016:24;13059:29;13080:7;13059:20;:29::i;12467:169::-;12546:24;12572:16;12607:22;12621:7;12607:13;:22::i;:::-;12600:29;;;;12467:169;;;:::o;2028:128::-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;2118:31:26::1;2139:9;2118:20;:31::i;6280:440::-:0;2261:21:8;:19;:21::i;:::-;6438:18:26::1;:16;:18::i;:::-;6471:6;6466:190;6479:19:::0;;::::1;6466:190;;;6563:10;6523:28;6539:8:::0;;6548:1;6539:11;;::::1;;;;;:::i;:::-;;;;;;;6523:15;:28::i;:::-;-1:-1:-1::0;;;;;6523:51:26::1;;6515:99;;;::::0;-1:-1:-1;;;6515:99:26;;28046:2:81;6515:99:26::1;::::0;::::1;28028:21:81::0;28085:2;28065:18;;;28058:30;28124:34;28104:18;;;28097:62;-1:-1:-1;;;28175:18:81;;;28168:33;28218:19;;6515:99:26::1;27844:399:81::0;6515:99:26::1;6640:3;;6466:190;;;;6665:48;6679:10;6691:2;;6695:8;;6705:7;;6665:13;:48::i;3161:168::-:0;3258:18;:16;:18::i;:::-;3286:36;3308:7;3317:4;;3286:21;:36::i;2990:166:75:-;-1:-1:-1;;;;;3112:27:75;;;3089:4;3112:27;;;:18;:27;;;;;;;;:37;;;;;;;;;;;;;;;2990:166::o;4789:160:26:-;987:10:1;976:7;:5;:7::i;:::-;-1:-1:-1;;;;;976:21:1;;:53;;;-1:-1:-1;1001:28:1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1;;;968:102:1;;;;;;;:::i;:::-;4899:43:26::1;4919:9;4930:11;4899:19;:43::i;3223:390:75:-:0;-1:-1:-1;;;;;3423:18:75;;3431:10;3423:18;;:56;;;3445:34;3462:4;3468:10;3445:16;:34::i;:::-;3402:149;;;;-1:-1:-1;;;3402:149:75;;;;;;;:::i;:::-;3561:45;3579:4;3585:2;3589;3593:6;3601:4;3561:17;:45::i;2321:198:3:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:3;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:3;;28450:2:81;2401:73:3::1;::::0;::::1;28432:21:81::0;28489:2;28469:18;;;28462:30;28528:34;28508:18;;;28501:62;-1:-1:-1;;;28579:18:81;;;28572:36;28625:19;;2401:73:3::1;28248:402:81::0;2401:73:3::1;2484:28;2503:8;2484:18;:28::i;5022:236:26:-:0;5177:16;2261:21:8;:19;:21::i;:::-;987:10:1::1;976:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;976:21:1::1;;:53;;;-1:-1:-1::0;1001:28:1::1;:7;1018:10;1001:16;:28::i;:::-;968:102;;;;-1:-1:-1::0;;;968:102:1::1;;;;;;;:::i;:::-;5212:39:26::2;5229:1;5233:2;;5237:7;;5246:4;;5212:8;:39::i;1012:229:33:-:0;1119:4;-1:-1:-1;;;;;;1142:52:33;;-1:-1:-1;;;1142:52:33;;:92;;;1198:36;1222:11;1198:23;:36::i;1171:305:75:-;1273:4;-1:-1:-1;;;;;;1308:41:75;;-1:-1:-1;;;1308:41:75;;:109;;-1:-1:-1;;;;;;;1365:52:75;;-1:-1:-1;;;1365:52:75;1308:161;;;;1433:36;1457:11;610:230:1;712:4;-1:-1:-1;;;;;;735:46:1;;-1:-1:-1;;;735:46:1;;:98;;-1:-1:-1;;;;;;;;;;937:40:19;;;797:36:1;829:155:19;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;5571:501:32:-;-1:-1:-1;;;;;5645:23:32;;;;;;:53;;-1:-1:-1;;;;;;5672:26:32;;5693:4;5672:26;;5645:53;5637:91;;;;-1:-1:-1;;;5637:91:32;;28857:2:81;5637:91:32;;;28839:21:81;28896:2;28876:18;;;28869:30;-1:-1:-1;;;28915:18:81;;;28908:55;28980:18;;5637:91:32;28655:349:81;5637:91:32;5741:31;:11;5762:9;5741:20;:31::i;:::-;5737:151;;;5792:44;;5825:10;;-1:-1:-1;;;;;5792:44:32;;;;;;;;5849:29;:11;5868:9;5849:18;:29::i;:::-;;5737:151;5901:42;:22;5933:9;5901:31;:42::i;:::-;5896:170;;5963:43;;5995:10;;-1:-1:-1;;;;;5963:43:32;;;;;;;;6019:37;:22;6046:9;6019:26;:37::i;7558:1016::-;7617:13;7660:1;7650:7;:11;:37;;;;;7676:11;;7665:7;:22;;7650:37;7642:63;;;;-1:-1:-1;;;7642:63:32;;;;;;;:::i;:::-;7716:17;7736:24;7752:7;7736:15;:24::i;:::-;7716:44;-1:-1:-1;7779:42:32;:22;7716:44;7779:31;:42::i;:::-;7778:43;7770:77;;;;-1:-1:-1;;;7770:77:32;;;;;;;:::i;:::-;7868:19;;;;:10;:19;;;;;7862:33;;;;;:::i;:::-;:38;;-1:-1:-1;7858:280:32;;-1:-1:-1;;;;;7926:30:32;;;;;;:19;:30;;;;;7920:44;;;;;:::i;:::-;:49;;-1:-1:-1;7916:172:32;;-1:-1:-1;;;;;8020:30:32;;;;;;:19;:30;;;;;;;;8052:19;;;:10;:19;;;;;;8003:69;;;;8020:30;8003:69;;:::i;:::-;;;;;;;;;;;;;7989:84;;;7558:1016;;;:::o;7916:172::-;8108:19;;;;:10;:19;;;;;8101:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7558:1016;;;:::o;7858:280::-;8152:87;8184:9;-1:-1:-1;;;8152:31:32;:87::i;:::-;8148:194;;;8262:69;;-1:-1:-1;;;8262:69:32;;-1:-1:-1;;;;;8262:45:32;;;;;:69;;8316:4;;8323:7;;8262:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8262:69:32;;;;;;;;;;;;:::i;8148:194::-;-1:-1:-1;;;;;8357:37:32;;;;;;:26;:37;;;;;;;;8352:216;;-1:-1:-1;;;;;8441:28:32;;;;;;:17;:28;;;;;8471:18;:7;:16;:18::i;:::-;8424:66;;;;;;;;;:::i;8352:216::-;-1:-1:-1;;;;;8529:28:32;;;;;;:17;:28;;;;;8522:35;;;;;:::i;8352:216::-;7632:942;7558:1016;;;:::o;10341:135::-;10405:20;10447:22;10461:7;10447:13;:22::i;7275:226::-;7372:1;7362:7;:11;:37;;;;;7388:11;;7377:7;:22;;7362:37;:79;;;;-1:-1:-1;7439:1:32;7403:24;7419:7;7403:15;:24::i;:::-;-1:-1:-1;;;;;7403:38:32;;7362:79;7354:105;;;;-1:-1:-1;;;7354:105:32;;;;;;;:::i;:::-;7469:19;;;;:10;:19;;;;;:25;7491:3;;7469:19;:25;:::i;10968:348::-;11096:39;11112:9;;11123:11;;11096:15;:39::i;:::-;11152:22;;;;:13;:22;;;;;11145:29;;;:::i;:::-;11184:61;11198:9;;11209:11;;11222:13;:22;11236:7;11222:22;;;;;;;;;;;11184:13;:61::i;:::-;11277:7;11260:49;11286:9;;11297:11;;11260:49;;;;;;;;;:::i;:::-;;;;;;;;10968:348;;;;;:::o;4558:131:33:-;4631:7;4657:25;;;:16;:25;;;;;;-1:-1:-1;;;;;4657:25:33;;4558:131::o;10482:431:32:-;10562:16;10580:14;10606:34;10642:20;10666:22;10680:7;10666:13;:22::i;:::-;10605:83;;;;10726:1;10706:9;:16;:21;;10698:62;;;;-1:-1:-1;;;10698:62:32;;34629:2:81;10698:62:32;;;34611:21:81;34668:2;34648:18;;;34641:30;-1:-1:-1;;;34687:18:81;;;34680:58;34755:18;;10698:62:32;34427:352:81;10698:62:32;10783:9;:16;10803:1;10783:21;10779:77;;10836:4;10843:1;10820:25;;;;;;;;10779:77;10873:9;10883:1;10873:12;;;;;;;;:::i;:::-;;;;;;;10900:5;10894;10887:3;10891:1;10887:6;;;;;;;;:::i;:::-;;;;;;;:12;;;;:::i;:::-;:18;;;;:::i;:::-;10865:41;;;;;;10482:431;;;;;:::o;1599:130:3:-;929:10:6;1662:7:3;:5;:7::i;:::-;-1:-1:-1;;;;;1662:23:3;;1654:68;;;;-1:-1:-1;;;1654:68:3;;35513:2:81;1654:68:3;;;35495:21:81;;;35532:18;;;35525:30;35591:34;35571:18;;;35564:62;35643:18;;1654:68:3;35311:356:81;8615:156:23;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:23;;8711:7;:53::i;5848:1113:75:-;6068:7;:14;6054:3;:10;:28;6046:81;;;;-1:-1:-1;;;6046:81:75;;;;;;;:::i;:::-;-1:-1:-1;;;;;6145:16:75;;6137:66;;;;-1:-1:-1;;;6137:66:75;;;;;;;:::i;:::-;6233:10;6254:60;6233:10;6285:4;6291:2;6295:3;6300:7;6309:4;6254:20;:60::i;:::-;6330:9;6325:411;6349:3;:10;6345:1;:14;6325:411;;;6380:10;6393:3;6397:1;6393:6;;;;;;;;:::i;:::-;;;;;;;6380:19;;6413:14;6430:7;6438:1;6430:10;;;;;;;;:::i;:::-;;;;;;;;;;;;6455:19;6477:13;;;:9;:13;;;;;;-1:-1:-1;;;;;6477:19:75;;;;;;;;;;;;6430:10;;-1:-1:-1;6518:21:75;;;;6510:76;;;;-1:-1:-1;;;6510:76:75;;;;;;;:::i;:::-;6628:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;6628:19:75;;;;;;;;;;6650:20;;;6628:42;;6698:17;;;;;;;:27;;6650:20;;6628:13;6698:27;;6650:20;;6698:27;:::i;:::-;;;;;;;;6366:370;;;6361:3;;;;:::i;:::-;;;6325:411;;;;6781:2;-1:-1:-1;;;;;6751:47:75;6775:4;-1:-1:-1;;;;;6751:47:75;6765:8;-1:-1:-1;;;;;6751:47:75;-1:-1:-1;;;;;;;;;;;6785:3:75;6790:7;6751:47;;;;;;;:::i;:::-;;;;;;;;6879:75;6915:8;6925:4;6931:2;6935:3;6940:7;6949:4;6879:35;:75::i;6886:108:32:-;6952:29;;;:17;:29;;;:35;6984:3;;6952:29;:35;:::i;3771:156::-;3852:42;:22;3884:9;3852:31;:42::i;:::-;3851:43;3843:77;;;;-1:-1:-1;;;3843:77:32;;;;;;;:::i;4370:463::-;-1:-1:-1;;;;;4500:26:32;;4521:4;4500:26;;;;:52;;;4530:22;:9;-1:-1:-1;;;;;4530:20:32;;:22::i;:::-;4492:72;;;;-1:-1:-1;;;4492:72:32;;37700:2:81;4492:72:32;;;37682:21:81;37739:1;37719:18;;;37712:29;-1:-1:-1;;;37757:18:81;;;37750:37;37804:18;;4492:72:32;37498:330:81;4492:72:32;4579:42;;4610:10;;-1:-1:-1;;;;;4579:42:32;;;;;;;;-1:-1:-1;;;;;4631:28:32;;;;;;:17;:28;;;;;:38;4662:7;;4631:28;:38;:::i;:::-;-1:-1:-1;;;;;;4679:37:32;;;;;;:26;:37;;;;;:56;;-1:-1:-1;;4679:56:32;;;;;;;4745:26;:11;4679:37;4745:15;:26::i;:::-;;4781:45;4810:9;4821:4;4781:28;:45::i;9098:115:23:-;9161:7;9187:19;9195:3;4537:18;;4455:107;9555:156;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;11390:519:32:-;11530:39;11546:9;;11557:11;;11530:15;:39::i;:::-;-1:-1:-1;;;;;11586:28:32;;;;;;:17;:28;;;;;11579:35;;;:::i;:::-;11624:67;11638:9;;11649:11;;11662:17;:28;11680:9;-1:-1:-1;;;;;11662:28:32;-1:-1:-1;;;;;11662:28:32;;;;;;;;;;;;11624:13;:67::i;:::-;-1:-1:-1;;;;;11705:23:32;;11701:202;;11749:47;11773:9;;11784:11;;11749:47;;;;;;;;;:::i;:::-;;;;;;;;11701:202;;;11858:9;-1:-1:-1;;;;;11832:60:32;;11869:9;;11880:11;;11832:60;;;;;;;;;:::i;2336:287:8:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:8;;38035:2:81;2460:63:8;;;38017:21:81;38074:2;38054:18;;;38047:30;38113:33;38093:18;;;38086:61;38164:18;;2460:63:8;37833:355:81;2460:63:8;1759:1;2598:7;:18;2336:287::o;14614:171:26:-;14710:32;14722:7;14731:2;14735:6;14710:11;:32::i;:::-;14752:16;;;;:12;:16;;;;;:26;;14772:6;;14752:16;:26;;14772:6;;14752:26;:::i;:::-;;;;-1:-1:-1;;;;;14614:171:26:o;14845:296::-;14966:39;14983:7;14992:3;14997:7;14966:16;:39::i;:::-;15020:6;15015:120;15032:3;:10;15028:1;:14;15015:120;;;15083:7;15091:1;15083:10;;;;;;;;:::i;:::-;;;;;;;15059:12;:20;15072:3;15076:1;15072:6;;;;;;;;:::i;:::-;;;;;;;15059:20;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;15119:3:26;;15015:120;;2846:735:33;2972:19;2964:45;;;;-1:-1:-1;;;2964:45:33;;;;;;;:::i;:::-;3019:17;3039:16;:29;3056:8;;3065:1;3056:11;;;;;;;:::i;:::-;;;;;;;;;;3039:29;;-1:-1:-1;3039:29:33;;;;;;;;-1:-1:-1;3039:29:33;;;;-1:-1:-1;;;;;3039:29:33;;-1:-1:-1;3078:174:33;3091:19;;;3078:174;;;3168:9;-1:-1:-1;;;;;3135:42:33;:16;:29;3152:8;;3161:1;3152:11;;;;;;;:::i;:::-;;;;;;;;;;3135:29;;-1:-1:-1;3135:29:33;;;;;;;;-1:-1:-1;3135:29:33;;-1:-1:-1;;;;;3135:29:33;:42;3127:83;;;;-1:-1:-1;;;3127:83:33;;;;;;;:::i;:::-;3236:3;;3078:174;;;-1:-1:-1;;;;;;3320:23:33;;;3316:259;;3362:94;3394:9;-1:-1:-1;;;3362:31:33;:94::i;:::-;3358:207;;;3475:76;;-1:-1:-1;;;3475:76:33;;-1:-1:-1;;;;;3475:50:33;;;;;:76;;3526:5;;3533:8;;;;3543:7;;;;3475:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2954:627;2846:735;;;;;:::o;3566:132:32:-;3626:32;:11;3647:10;3626:20;:32::i;:::-;3618:73;;;;-1:-1:-1;;;3618:73:32;;39506:2:81;3618:73:32;;;39488:21:81;39545:2;39525:18;;;39518:30;-1:-1:-1;;;39564:18:81;;;39557:58;39632:18;;3618:73:32;39304:352:81;6142:193:32;6251:10;6233:29;;;;:17;:29;;;;;:35;6265:3;;6233:29;:35;:::i;:::-;-1:-1:-1;6305:10:32;6278:38;;;;:26;:38;;;;;:50;;-1:-1:-1;;6278:50:32;;;;;;;;;;-1:-1:-1;;6142:193:32:o;1186:320:5:-;-1:-1:-1;;;;;1476:19:5;;:23;;;1186:320::o;574:151:76:-;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;678:40:76::1;703:5;710:7;678:24;:40::i;1003:95:3:-:0;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;1065:26:3::1;:24;:26::i;13050:158:32:-:0;13121:20;:32;;-1:-1:-1;;;;;;13121:32:32;-1:-1:-1;;;;;13121:32:32;;;;;13168:33;;;;;;13121:32;;13168:33;:::i;:::-;;;;;;;;13050:158;:::o;6610:194::-;6734:10;6706:24;6722:7;6706:15;:24::i;6407:127::-;6507:10;6487:31;;;;:19;:31;;;;;:40;6521:6;;6487:31;:40;:::i;8961:1620:26:-;-1:-1:-1;;;;;9106:23:26;;;9102:98;;9145:44;9167:2;;9145:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9145:44:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9171:8:26;;-1:-1:-1;9171:8:26;;;;9145:44;;;9171:8;;9145:44;9171:8;9145:44;;;;;;;;;-1:-1:-1;;9145:44:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9181:7:26;;-1:-1:-1;9181:7:26;;;;9145:44;;;9181:7;;9145:44;9181:7;9145:44;;;;;;;;;-1:-1:-1;9145:21:26;;-1:-1:-1;;;9145:44:26:i;:::-;9227:1;9214:14;;:38;;;;-1:-1:-1;9251:1:26;9232:20;;9214:38;:61;;;;-1:-1:-1;9274:1:26;9256:19;;9214:61;9210:1365;;;9319:51;9325:2;;9328:1;9325:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9332:8;;9341:1;9332:11;;;;;;;:::i;:::-;;;;;;;9345:7;;9353:1;9345:10;;;;;;;:::i;:::-;9357:12;;;9367:1;9357:12;;9345:10;9357:12;;;;;;9345:10;;;;;;;;9357:12;-1:-1:-1;9319:5:26;:51::i;:::-;9210:1365;;;9416:1;9403:14;;:51;;;;-1:-1:-1;9421:33:26;;;9403:51;9399:1176;;;9513:50;9524:2;;9527:1;9524:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9531:8;;9513:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9513:50:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9541:7:26;;-1:-1:-1;9541:7:26;;;;9513:50;;;9541:7;;9513:50;9541:7;9513:50;;;;;;;;-1:-1:-1;9513:50:26;-1:-1:-1;9550:12:26;;-1:-1:-1;;9550:12:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9550:12:26;;9513:10;:50::i;9399:1176::-;9603:1;9584:20;;:43;;;;-1:-1:-1;9626:1:26;9608:19;;9584:43;9580:995;;;9721:6;9716:148;9729:13;;;9716:148;;;9763:51;9769:2;;9772:1;9769:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9776:8;;9785:1;9776:11;;;;;;;:::i;:::-;;;;;;;9789:7;;9797:1;9789:10;;;;;;;:::i;9763:51::-;9844:3;;9716:148;;;;9580:995;;;9903:1;9884:20;;:51;;;;-1:-1:-1;9908:27:26;;;9884:51;9880:695;;;10040:6;10035:148;10048:13;;;10035:148;;;10082:51;10088:2;;10091:1;10088:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10095:8;;10104:1;10095:11;;;;;;;:::i;:::-;;;;;;;10108:7;;10116:1;10108:10;;;;;;;:::i;10082:51::-;10163:3;;10035:148;;9880:695;10203:28;;;:59;;;;-1:-1:-1;10235:27:26;;;10203:59;10199:376;;;10368:6;10363:148;10376:13;;;10363:148;;;10410:51;10416:2;;10419:1;10416:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10423:8;;10432:1;10423:11;;;;;;;:::i;10410:51::-;10491:3;;10363:148;;10199:376;10541:23;;-1:-1:-1;;;10541:23:26;;;;;;;:::i;10199:376::-;8961:1620;;;;;;;:::o;8297:150:23:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:23;;8390:4;:50::i;2673:187:3:-;2765:6;;;-1:-1:-1;;;;;2781:17:3;;;-1:-1:-1;;;;;;2781:17:3;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;6770:2136:26:-;6899:25;6952:1;6940:13;;6936:477;;;7054:16;;;7068:1;7054:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7043:27:26;-1:-1:-1;7107:1:26;7092:16;;;;;:72;;-1:-1:-1;7131:1:26;7113:19;;;:50;;-1:-1:-1;7136:27:26;;;7113:50;7084:98;;;;-1:-1:-1;;;7084:98:26;;;;;;;:::i;:::-;6936:477;;;7298:7;-1:-1:-1;;;;;7284:29:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7284:29:26;-1:-1:-1;7273:40:26;-1:-1:-1;7335:16:26;;;:49;;-1:-1:-1;7355:29:26;;;7335:49;7327:75;;;;-1:-1:-1;;;7327:75:26;;;;;;;:::i;:::-;7455:6;7450:255;7467:8;:15;7463:1;:19;7450:255;;;7501:11;;7499:13;;;;;:::i;:::-;;;;-1:-1:-1;7540:11:26;;7526;;:8;;7535:1;;7526:11;;;;;;:::i;:::-;;;;;;;;;;;:25;;;;7639:11;;7622:29;;;;:16;:29;;;;;;:41;;-1:-1:-1;;;;;;7622:41:26;-1:-1:-1;;;;;7622:41:26;;;;;-1:-1:-1;7689:3:26;7450:255;;;-1:-1:-1;;;;;;7719:23:26;;;7715:98;;7758:44;7780:2;;7758:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7758:44:26;;;;;;;;;;;;;;;;;;7784:8;;-1:-1:-1;7758:44:26;;-1:-1:-1;7794:7:26;;;;;;7758:44;;;;7794:7;;7758:44;7794:7;7758:44;;;;;;;;;-1:-1:-1;7758:21:26;;-1:-1:-1;;;7758:44:26:i;:::-;7840:1;7827:14;;:38;;;;;7845:8;:15;7864:1;7845:20;7827:38;7823:861;;;7906:51;7912:2;;7915:1;7912:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7919:8;7928:1;7919:11;;;;;;;;:::i;:::-;;;;;;;7932:7;;7940:1;7932:10;;;;;;;:::i;7906:51::-;7823:861;;;7990:1;7978:13;;7974:710;;;8090:1;8072:19;;;8068:525;;8170:6;8165:160;8178:13;;;8165:160;;;8216:51;8222:2;;8225:1;8222:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8229:8;8238:1;8229:11;;;;;;;;:::i;:::-;;;;;;;8242:7;;8250:1;8242:10;;;;;;;:::i;8216:51::-;8301:3;;8165:160;;;;7974:710;;8068:525;8424:6;8419:160;8432:13;;;8419:160;;;8470:51;8476:2;;8479:1;8476:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8483:8;8492:1;8483:11;;;;;;;;:::i;:::-;;;;;;;8496:7;;8504:1;8496:10;;;;;;;:::i;8470:51::-;8555:3;;8419:160;;7974:710;8623:50;8634:2;;8637:1;8634:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8641:8;8651:7;;8623:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8623:50:26;-1:-1:-1;8660:12:26;;-1:-1:-1;;8660:12:26;8623:50;8699:6;8694:206;8711:8;:15;8707:1;:19;8694:206;;;8747:15;;;:44;;;;;8790:1;8772:4;;8777:1;8772:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8766:21;;:25;8747:44;8743:116;;;8837:4;;8842:1;8837:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8811:10;:23;8822:8;8831:1;8822:11;;;;;;;;:::i;:::-;;;;;;;8811:23;;;;;;;;;;;:33;;;;;;;:::i;:::-;;8743:116;8884:3;;8694:206;;;;6770:2136;;;;;;;;;:::o;7078:118:32:-;7149:31;;;:19;:31;;;:40;7183:6;;7149:31;:40;:::i;11606:323:75:-;11756:8;-1:-1:-1;;;;;11747:17:75;:5;-1:-1:-1;;;;;11747:17:75;;11739:71;;;;-1:-1:-1;;;11739:71:75;;40275:2:81;11739:71:75;;;40257:21:81;40314:2;40294:18;;;40287:30;40353:34;40333:18;;;40326:62;-1:-1:-1;;;40404:18:81;;;40397:39;40453:19;;11739:71:75;40073:405:81;11739:71:75;-1:-1:-1;;;;;11820:25:75;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11820:46:75;;;;;;;;;;11881:41;;1178::81;;;11881::75;;1151:18:81;11881:41:75;;;;;;;11606:323;;;:::o;1322:354:33:-;1425:101;1457:9;-1:-1:-1;;;;;;1425:31:33;:101::i;:::-;1421:249;;;-1:-1:-1;;;;;1542:37:33;;;;;;:26;:37;;;;;;;;;:47;;-1:-1:-1;;1542:47:33;;;;;;;;;;1608:51;;1178:41:81;;;1608:51:33;;1151:18:81;1608:51:33;;;;;;;1322:354;;:::o;10104:161:32:-;10174:34;10236:22;10250:7;10236:13;:22::i;:::-;-1:-1:-1;10220:38:32;10104:161;-1:-1:-1;;10104:161:32:o;8639:1392::-;8702:34;8738:20;8808:32;8843:13;:22;8857:7;8843:22;;;;;;;;;;;8808:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8808:57:32;;;;-1:-1:-1;;;8808:57:32;;;;;;;;;;;;;;;;;;;;;;;;;8879:9;:16;8899:1;8879:21;8875:642;;8964:17;8984:24;9000:7;8984:15;:24::i;:::-;8964:44;-1:-1:-1;;;;;;9026:23:32;;;9022:485;;9073:88;9105:9;-1:-1:-1;;;9073:31:32;:88::i;:::-;9069:366;;;9204:74;;-1:-1:-1;;;9204:74:32;;-1:-1:-1;;;;;9204:50:32;;;;;:74;;9263:4;;9270:7;;9204:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9204:74:32;;;;;;;;;;;;:::i;:::-;9371:16;;9185:93;;-1:-1:-1;9185:93:32;-1:-1:-1;9371:20:32;9367:49;;9393:23;;8639:1392;;;:::o;9367:49::-;-1:-1:-1;;;;;9464:28:32;;;;;;:17;:28;;;;;;;;9452:40;;;;;;;;;;;;;;;;;;;9464:28;;9452:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9452:40:32;;;;-1:-1:-1;;;9452:40:32;;;;;;;;;;;;;;;;;;;;;;;;;9022:485;8902:615;8875:642;9530:9;:16;9550:1;9530:21;9526:132;;9618:29;;;;:17;:29;;;;;9606:41;;9618:29;9606:41;;;;;;;;;;;;;;;;9618:29;;9606:41;;9618:29;9606:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9606:41:32;;;;-1:-1:-1;;;9606:41:32;;;;;;;;;;;;;;;;;;;;;;;;;9526:132;9680:16;;:20;9676:349;;9750:9;:16;-1:-1:-1;;;;;9728:39:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9728:39:32;;9716:51;;9801:9;:16;-1:-1:-1;;;;;9787:31:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9787:31:32;;9781:37;;9837:6;9832:183;9849:9;:16;9845:1;:20;9832:183;;;9901:9;9911:1;9901:12;;;;;;;;:::i;:::-;;;;;;;:21;;;9886:9;9896:1;9886:12;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;9886:36:32;;;-1:-1:-1;;;;;9886:36:32;;;;;9949:9;9959:1;9949:12;;;;;;;;:::i;:::-;;;;;;;:16;;;9940:25;;:3;9944:1;9940:6;;;;;;;;:::i;:::-;;;;;;;;;;:25;9995:3;;9832:183;;;;9676:349;8760:1271;8639:1392;;;:::o;5351:163::-;5424:44;;5457:10;;-1:-1:-1;;;;;5424:44:32;;;;;;;;5478:29;:11;5497:9;5478:18;:29::i;1748:527:33:-;1844:31;:11;1865:9;1844:20;:31::i;:::-;1836:61;;;;-1:-1:-1;;;1836:61:33;;42695:2:81;1836:61:33;;;42677:21:81;42734:2;42714:18;;;42707:30;-1:-1:-1;;;42753:18:81;;;42746:47;42810:18;;1836:61:33;42493:341:81;1836:61:33;-1:-1:-1;;;;;1915:25:33;;;;:123;;;1944:94;1976:11;-1:-1:-1;;;1944:31:33;:94::i;:::-;1907:151;;;;-1:-1:-1;;;1907:151:33;;43041:2:81;1907:151:33;;;43023:21:81;43080:2;43060:18;;;43053:30;-1:-1:-1;;;43099:18:81;;;43092:45;43154:18;;1907:151:33;42839:339:81;1907:151:33;-1:-1:-1;;;;;2072:32:33;;;;;;;:21;:32;;;;;;;;:47;;;;2068:201;;-1:-1:-1;;;;;2135:32:33;;;;;;;:21;:32;;;;;;:46;;-1:-1:-1;;;;;;2135:46:33;;;;;;;;;2200:58;2247:10;;2135:46;:32;2200:58;;;1748:527;;:::o;4557:945:75:-;-1:-1:-1;;;;;4738:16:75;;4730:66;;;;-1:-1:-1;;;4730:66:75;;;;;;;:::i;:::-;4826:10;4807:16;4869:21;4887:2;4869:17;:21::i;:::-;4846:44;;4900:24;4927:25;4945:6;4927:17;:25::i;:::-;4900:52;;4963:60;4984:8;4994:4;5000:2;5004:3;5009:7;5018:4;4963:20;:60::i;:::-;5034:19;5056:13;;;:9;:13;;;;;;;;-1:-1:-1;;;;;5056:19:75;;;;;;;;;;5093:21;;;;5085:76;;;;-1:-1:-1;;;5085:76:75;;;;;;;:::i;:::-;5195:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;5195:19:75;;;;;;;;;;5217:20;;;5195:42;;5257:17;;;;;;;:27;;5217:20;;5195:13;5257:27;;5217:20;;5257:27;:::i;:::-;;;;-1:-1:-1;;5300:46:75;;;43357:25:81;;;43413:2;43398:18;;43391:34;;;-1:-1:-1;;;;;5300:46:75;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5300:46:75;43330:18:81;5300:46:75;;;;;;;5427:68;5458:8;5468:4;5474:2;5478;5482:6;5490:4;5427:30;:68::i;:::-;4720:782;;;;4557:945;;;;;:::o;2984:483:32:-;3086:4;-1:-1:-1;;;;;;3109:45:32;;-1:-1:-1;;;3109:45:32;;:80;;-1:-1:-1;;;;;;;3158:31:32;;-1:-1:-1;;;3158:31:32;3109:80;:120;;;;3193:36;3217:11;3193:23;:36::i;:::-;3109:186;;;-1:-1:-1;;;;;;;3245:50:32;;-1:-1:-1;;;3245:50:32;3109:186;:236;;;-1:-1:-1;;;;;;;3299:46:32;;-1:-1:-1;;;3299:46:32;3109:236;:301;;;-1:-1:-1;;;;;;;3361:49:32;;-1:-1:-1;;;3361:49:32;3109:301;:351;;;-1:-1:-1;;;;;;;3414:46:32;;-1:-1:-1;;;3414:46:32;3102:358;2984:483;-1:-1:-1;;2984:483:32: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;415:696:18:-;471:13;520:14;537:17;548:5;537:10;:17::i;:::-;557:1;537:21;520:38;;572:20;606:6;-1:-1:-1;;;;;595:18:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:18;-1:-1:-1;572:41:18;-1:-1:-1;733:28:18;;;749:2;733:28;788:280;-1:-1:-1;;819:5:18;-1:-1:-1;;;953:2:18;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:18;788:280;1032:21;-1:-1:-1;1088:6:18;415:696;-1:-1:-1;;;415:696:18:o;11997:430:32:-;12123:38;;;12115:64;;;;-1:-1:-1;;;12115:64:32;;;;;;;:::i;:::-;12189:24;12228:6;12223:128;12236:22;;;12223:128;;;12295:11;;12307:1;12295:14;;;;;;;:::i;:::-;;;;;;;12275:34;;;;;:::i;:::-;;-1:-1:-1;12335:3:32;;12223:128;;;;12387:5;12368:16;:24;12360:60;;;;-1:-1:-1;;;12360:60:32;;43638:2:81;12360:60:32;;;43620:21:81;43677:2;43657:18;;;43650:30;-1:-1:-1;;;43696:18:81;;;43689:53;43759:18;;12360:60:32;43436:347:81;12489:468:32;12640:6;12635:316;12648:22;;;12635:316;;;12687:9;12719:176;;;;;;;;12790:9;;12800:1;12790:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12719:176:32;;;;;12840:11;;12852:1;12840:14;;;;;;;:::i;:::-;12719:176;12840:14;;;;;;;;;12719:176;;;;;-1:-1:-1;12687:222:32;;;;;;;;-1:-1:-1;12687:222:32;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12687:222:32;-1:-1:-1;;;;;;12687:222:32;;;-1:-1:-1;;;;;12687:222:32;;;;;;;;;;12935:3;12635:316;;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;;;;;1155:210:26;1318:40;1335:4;1341:2;1345:3;1350:7;1318:16;:40::i;14962:792:75:-;15194:15;:2;-1:-1:-1;;;;;15194:13:75;;:15::i;:::-;15190:558;;;15229:79;;-1:-1:-1;;;15229:79:75;;-1:-1:-1;;;;;15229:43:75;;;;;:79;;15273:8;;15283:4;;15289:3;;15294:7;;15303:4;;15229:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15229:79:75;;;;;;;;-1:-1:-1;;15229:79:75;;;;;;;;;;;;:::i;:::-;;;15225:513;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;15614:6;15607:14;;-1:-1:-1;;;15607:14:75;;;;;;;;:::i;15225:513::-;;;15661:62;;-1:-1:-1;;;15661:62:75;;46328:2:81;15661:62:75;;;46310:21:81;46367:2;46347:18;;;46340:30;46406:34;46386:18;;;46379:62;-1:-1:-1;;;46457:18:81;;;46450:50;46517:19;;15661:62:75;46126:416:81;15225:513:75;-1:-1:-1;;;;;;15387:60:75;;-1:-1:-1;;;15387:60:75;15383:157;;15471:50;;-1:-1:-1;;;15471:50:75;;;;;;;:::i;4904:118:23:-;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;9506:784:75:-;-1:-1:-1;;;;;9628:18:75;;9620:66;;;;-1:-1:-1;;;9620:66:75;;;;;;;:::i;:::-;9716:10;9697:16;9759:21;9777:2;9759:17;:21::i;:::-;9736:44;;9790:24;9817:25;9835:6;9817:17;:25::i;:::-;9790:52;;9853:66;9874:8;9884:4;9898:1;9902:3;9907:7;9853:66;;;;;;;;;;;;:20;:66::i;:::-;9930:19;9952:13;;;:9;:13;;;;;;;;-1:-1:-1;;;;;9952:19:75;;;;;;;;;;9989:21;;;;9981:70;;;;-1:-1:-1;;;9981:70:75;;;;;;;:::i;:::-;10085:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;10085:19:75;;;;;;;;;;;;10107:20;;;10085:42;;10153:54;;43357:25:81;;;43398:18;;;43391:34;;;10085:19:75;;10153:54;;;;-1:-1:-1;;;;;;;;;;;10153:54:75;43330:18:81;10153:54:75;;;;;;;10218:65;;;;;;;;;10262:1;10218:65;;;5336:519:26;10529:941:75;-1:-1:-1;;;;;10676:18:75;;10668:66;;;;-1:-1:-1;;;10668:66:75;;;;;;;:::i;:::-;10766:7;:14;10752:3;:10;:28;10744:81;;;;-1:-1:-1;;;10744:81:75;;;;;;;:::i;:::-;10836:16;10855:10;10836:29;;10876:66;10897:8;10907:4;10921:1;10925:3;10930:7;10876:66;;;;;;;;;;;;:20;:66::i;:::-;10958:9;10953:364;10977:3;:10;10973:1;:14;10953:364;;;11008:10;11021:3;11025:1;11021:6;;;;;;;;:::i;:::-;;;;;;;11008:19;;11041:14;11058:7;11066:1;11058:10;;;;;;;;:::i;:::-;;;;;;;;;;;;11083:19;11105:13;;;:9;:13;;;;;;-1:-1:-1;;;;;11105:19:75;;;;;;;;;;;;11058:10;;-1:-1:-1;11146:21:75;;;;11138:70;;;;-1:-1:-1;;;11138:70:75;;;;;;;:::i;:::-;11250:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;11250:19:75;;;;;;;;;;11272:20;;11250:42;;10989:3;;;;:::i;:::-;;;;10953:364;;;;11370:1;-1:-1:-1;;;;;11332:55:75;11356:4;-1:-1:-1;;;;;11332:55:75;11346:8;-1:-1:-1;;;;;11332:55:75;-1:-1:-1;;;;;;;;;;;11374:3:75;11379:7;11332:55;;;;;;;:::i;:::-;;;;;;;;11398:65;;;;;;;;;11442:1;11398:65;;;5336:519:26;731:161:76;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;845:5:76::1;:13;853:5:::0;845;:13:::1;:::i;:::-;-1:-1:-1::0;868:7:76::1;:17;878:7:::0;868;:17:::1;:::i;1104:111:3:-:0;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;1176:32:3::1;929:10:6::0;1176:18:3::1;:32::i;2479:320:33:-:0;2629:10;2652:1;2607:33;;;:21;:33;;;;;;-1:-1:-1;;;;;2607:33:33;:47;2603:190;;2723:10;2701:33;;;;:21;:33;;;;;;;;2670:112;;-1:-1:-1;;;2670:112:33;;-1:-1:-1;;;;;2701:33:33;;;;2670:77;;:112;;2723:10;2760:2;;2764:8;;2774:7;;2670:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13992:196:26;14107:38;14119:7;14128:2;14132:6;14140:4;14107:11;:38::i;:::-;14155:16;;;;:12;:16;;;;;:26;;14175:6;;14155:16;:26;;14175:6;;14155:26;:::i;:::-;;;;-1:-1:-1;;;;;;13992:196:26:o;14248:311::-;14383:40;14400:2;14404:3;14409:7;14418:4;14383:16;:40::i;:::-;14438:6;14433:120;14450:3;:10;14446:1;:14;14433:120;;;14501:7;14509:1;14501:10;;;;;;;;:::i;:::-;;;;;;;14477:12;:20;14490:3;14494:1;14490:6;;;;;;;;:::i;:::-;;;;;;;14477:20;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;14537:3:26;;14433:120;;2206:404:23;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;;15760:193:75;15879:16;;;15893:1;15879:16;;;;;;;;;15826;;15854:22;;15879:16;;;;;;;;;;;;-1:-1:-1;15879:16:75;15854:41;;15916:7;15905:5;15911:1;15905:8;;;;;;;;:::i;:::-;;;;;;;;;;:18;15941:5;15760:193;-1:-1:-1;;15760:193:75:o;14231:725::-;14438:15;:2;-1:-1:-1;;;;;14438:13:75;;:15::i;:::-;14434:516;;;14473:72;;-1:-1:-1;;;14473:72:75;;-1:-1:-1;;;;;14473:38:75;;;;;:72;;14512:8;;14522:4;;14528:2;;14532:6;;14540:4;;14473:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14473:72:75;;;;;;;;-1:-1:-1;;14473:72:75;;;;;;;;;;;;:::i;:::-;;;14469:471;;;;:::i;:::-;-1:-1:-1;;;;;;14594:55:75;;-1:-1:-1;;;14594:55:75;14590:152;;14673:50;;-1:-1:-1;;;14673:50:75;;;;;;;:::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;;;;;;50623:33:81;;4433:71:20;;;;50605:52:81;;;;4433:71:20;;;;;;;;;;50578: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;9889:890:22:-;9942:7;;-1:-1:-1;;;10017:15:22;;10013:99;;-1:-1:-1;;;10052:15:22;;;-1:-1:-1;10095:2:22;10085:12;10013:99;-1:-1:-1;;;10129:5:22;:15;10125:99;;-1:-1:-1;;;10164:15:22;;;-1:-1:-1;10207:2:22;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:22;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:22;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:22;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:22;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10766:6;9889:890;-1:-1:-1;;9889:890:22:o;3629:923:33:-;-1:-1:-1;;;;;3797:18:33;;3793:31;3817:7;3793:31;3834:17;3854:16;:29;3871:8;3880:1;3871:11;;;;;;;;:::i;:::-;;;;;;;3854:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3854:29:33;3834:49;;3899:6;3894:174;3911:8;:15;3907:1;:19;3894:174;;;3984:9;-1:-1:-1;;;;;3951:42:33;:16;:29;3968:8;3977:1;3968:11;;;;;;;;:::i;:::-;;;;;;;;;;;;3951:29;;;;;;;;;;-1:-1:-1;3951:29:33;;-1:-1:-1;;;;;3951:29:33;:42;3943:83;;;;-1:-1:-1;;;3943:83:33;;;;;;;:::i;:::-;4052:3;;3894:174;;;-1:-1:-1;;;;;;4081:23:33;;;;;;:64;;-1:-1:-1;;;;;;4108:37:33;;;;;;:26;:37;;;;;;;;4081:64;4077:469;;;4169:107;;-1:-1:-1;;;4169:107:33;;-1:-1:-1;;;;;4169:66:33;;;;;:107;;4236:10;;4248:4;;4254:2;;4258:8;;4268:7;;4169:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4161:146;;;;-1:-1:-1;;;4161:146:33;;;;;;;:::i;:::-;4077:469;;;4328:20;;-1:-1:-1;;;;;4328:20:33;:34;4324:222;;4426:20;;4386:118;;-1:-1:-1;;;4386:118:33;;-1:-1:-1;;;;;4426:20:33;;;;4386:77;;:118;;4464:10;;4476:4;;4482:2;;4486:8;;4496:7;;4386:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4378:157;;;;-1:-1:-1;;;4378:157:33;;;;;;;:::i;7334:707:75:-;-1:-1:-1;;;;;7481:16:75;;7473:62;;;;-1:-1:-1;;;7473:62:75;;;;;;;:::i;:::-;7565:10;7546:16;7608:21;7626:2;7608:17;:21::i;:::-;7585:44;;7639:24;7666:25;7684:6;7666:17;:25::i;:::-;7639:52;;7702:66;7723:8;7741:1;7745:2;7749:3;7754:7;7763:4;7702:20;:66::i;:::-;7779:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;7779:17:75;;;;;;;;;:27;;7800:6;;7779:13;:27;;7800:6;;7779:27;:::i;:::-;;;;-1:-1:-1;;7821:52:75;;;43357:25:81;;;43413:2;43398:18;;43391:34;;;-1:-1:-1;;;;;7821:52:75;;;;7854:1;;7821:52;;;;-1:-1:-1;;;;;;;;;;;7821:52:75;43330:18:81;7821:52:75;;;;;;;7960:74;7991:8;8009:1;8013:2;8017;8021:6;8029:4;7960:30;:74::i;8431:789::-;-1:-1:-1;;;;;8603:16:75;;8595:62;;;;-1:-1:-1;;;8595:62:75;;;;;;;:::i;:::-;8689:7;:14;8675:3;:10;:28;8667:81;;;;-1:-1:-1;;;8667:81:75;;;;;;;:::i;:::-;8778:10;8799:66;8778:10;8759:16;8842:2;8846:3;8851:7;8860:4;8799:20;:66::i;:::-;8881:9;8876:101;8900:3;:10;8896:1;:14;8876:101;;;8956:7;8964:1;8956:10;;;;;;;;:::i;:::-;;;;;;;8931:9;:17;8941:3;8945:1;8941:6;;;;;;;;:::i;:::-;;;;;;;8931:17;;;;;;;;;;;:21;8949:2;-1:-1:-1;;;;;8931:21:75;-1:-1:-1;;;;;8931:21:75;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;8912:3:75;;-1:-1:-1;8912:3:75;;;:::i;:::-;;;;8876:101;;;;9028:2;-1:-1:-1;;;;;8992:53:75;9024:1;-1:-1:-1;;;;;8992:53:75;9006:8;-1:-1:-1;;;;;8992:53:75;-1:-1:-1;;;;;;;;;;;9032:3:75;9037:7;8992:53;;;;;;;:::i;:::-;;;;;;;;9132:81;9168:8;9186:1;9190:2;9194:3;9199:7;9208:4;9132:35;:81::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:131:81;-1:-1:-1;;;;;89:31:81;;79:42;;69:70;;135:1;132;125:12;150:315;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;455:2;440:18;;;;427:32;;-1:-1:-1;;;150:315:81:o;652:131::-;-1:-1:-1;;;;;;726:32:81;;716:43;;706:71;;773:1;770;763:12;788:245;846:6;899:2;887:9;878:7;874:23;870:32;867:52;;;915:1;912;905:12;867:52;954:9;941:23;973:30;997:5;973:30;:::i;1230:247::-;1289:6;1342:2;1330:9;1321:7;1317:23;1313:32;1310:52;;;1358:1;1355;1348:12;1310:52;1397:9;1384:23;1416:31;1441:5;1416:31;:::i;1482:250::-;1567:1;1577:113;1591:6;1588:1;1585:13;1577:113;;;1667:11;;;1661:18;1648:11;;;1641:39;1613:2;1606:10;1577:113;;;-1:-1:-1;;1724:1:81;1706:16;;1699:27;1482:250::o;1737:271::-;1779:3;1817:5;1811:12;1844:6;1839:3;1832:19;1860:76;1929:6;1922:4;1917:3;1913:14;1906:4;1899:5;1895:16;1860:76;:::i;:::-;1990:2;1969:15;-1:-1:-1;;1965:29:81;1956:39;;;;1997:4;1952:50;;1737:271;-1:-1:-1;;1737:271:81:o;2013:220::-;2162:2;2151:9;2144:21;2125:4;2182:45;2223:2;2212:9;2208:18;2200:6;2182:45;:::i;2238:180::-;2297:6;2350:2;2338:9;2329:7;2325:23;2321:32;2318:52;;;2366:1;2363;2356:12;2318:52;-1:-1:-1;2389:23:81;;2238:180;-1:-1:-1;2238:180:81:o;2423:435::-;2476:3;2514:5;2508:12;2541:6;2536:3;2529:19;2567:4;2596:2;2591:3;2587:12;2580:19;;2633:2;2626:5;2622:14;2654:1;2664:169;2678:6;2675:1;2672:13;2664:169;;;2739:13;;2727:26;;2773:12;;;;2808:15;;;;2700:1;2693:9;2664:169;;;-1:-1:-1;2849:3:81;;2423:435;-1:-1:-1;;;;;2423:435:81:o;2863:261::-;3042:2;3031:9;3024:21;3005:4;3062:56;3114:2;3103:9;3099:18;3091:6;3062:56;:::i;3129:348::-;3181:8;3191:6;3245:3;3238:4;3230:6;3226:17;3222:27;3212:55;;3263:1;3260;3253:12;3212:55;-1:-1:-1;3286:20:81;;-1:-1:-1;;;;;3318:30:81;;3315:50;;;3361:1;3358;3351:12;3315:50;3398:4;3390:6;3386:17;3374:29;;3450:3;3443:4;3434:6;3426;3422:19;3418:30;3415:39;3412:59;;;3467:1;3464;3457:12;3482:479;3562:6;3570;3578;3631:2;3619:9;3610:7;3606:23;3602:32;3599:52;;;3647:1;3644;3637:12;3599:52;3683:9;3670:23;3660:33;;3744:2;3733:9;3729:18;3716:32;-1:-1:-1;;;;;3763:6:81;3760:30;3757:50;;;3803:1;3800;3793:12;3757:50;3842:59;3893:7;3884:6;3873:9;3869:22;3842:59;:::i;:::-;3482:479;;3920:8;;-1:-1:-1;3816:85:81;;-1:-1:-1;;;;3482:479:81:o;3966:375::-;4037:8;4047:6;4101:3;4094:4;4086:6;4082:17;4078:27;4068:55;;4119:1;4116;4109:12;4068:55;-1:-1:-1;4142:20:81;;-1:-1:-1;;;;;4174:30:81;;4171:50;;;4217:1;4214;4207:12;4171:50;4254:4;4246:6;4242:17;4230:29;;4314:3;4307:4;4297:6;4294:1;4290:14;4282:6;4278:27;4274:38;4271:47;4268:67;;;4331:1;4328;4321:12;4346:865;4485:6;4493;4501;4509;4517;4570:2;4558:9;4549:7;4545:23;4541:32;4538:52;;;4586:1;4583;4576:12;4538:52;4622:9;4609:23;4599:33;;4683:2;4672:9;4668:18;4655:32;-1:-1:-1;;;;;4747:2:81;4739:6;4736:14;4733:34;;;4763:1;4760;4753:12;4733:34;4802:78;4872:7;4863:6;4852:9;4848:22;4802:78;:::i;:::-;4899:8;;-1:-1:-1;4776:104:81;-1:-1:-1;4987:2:81;4972:18;;4959:32;;-1:-1:-1;5003:16:81;;;5000:36;;;5032:1;5029;5022:12;5000:36;;5071:80;5143:7;5132:8;5121:9;5117:24;5071:80;:::i;:::-;4346:865;;;;-1:-1:-1;4346:865:81;;-1:-1:-1;5170:8:81;;5045:106;4346:865;-1:-1:-1;;;4346:865:81:o;5216:203::-;-1:-1:-1;;;;;5380:32:81;;;;5362:51;;5350:2;5335:18;;5216:203::o;5424:248::-;5492:6;5500;5553:2;5541:9;5532:7;5528:23;5524:32;5521:52;;;5569:1;5566;5559:12;5521:52;-1:-1:-1;;5592:23:81;;;5662:2;5647:18;;;5634:32;;-1:-1:-1;5424:248:81:o;5677:274::-;-1:-1:-1;;;;;5869:32:81;;;;5851:51;;5933:2;5918:18;;5911:34;5839:2;5824:18;;5677:274::o;5956:127::-;6017:10;6012:3;6008:20;6005:1;5998:31;6048:4;6045:1;6038:15;6072:4;6069:1;6062:15;6088:249;6198:2;6179:13;;-1:-1:-1;;6175:27:81;6163:40;;-1:-1:-1;;;;;6218:34:81;;6254:22;;;6215:62;6212:88;;;6280:18;;:::i;:::-;6316:2;6309:22;-1:-1:-1;;6088:249:81:o;6342:183::-;6402:4;-1:-1:-1;;;;;6427:6:81;6424:30;6421:56;;;6457:18;;:::i;:::-;-1:-1:-1;6502:1:81;6498:14;6514:4;6494:25;;6342:183::o;6530:724::-;6584:5;6637:3;6630:4;6622:6;6618:17;6614:27;6604:55;;6655:1;6652;6645:12;6604:55;6691:6;6678:20;6717:4;6740:43;6780:2;6740:43;:::i;:::-;6812:2;6806:9;6824:31;6852:2;6844:6;6824:31;:::i;:::-;6890:18;;;6982:1;6978:10;;;;6966:23;;6962:32;;;6924:15;;;;-1:-1:-1;7006:15:81;;;7003:35;;;7034:1;7031;7024:12;7003:35;7070:2;7062:6;7058:15;7082:142;7098:6;7093:3;7090:15;7082:142;;;7164:17;;7152:30;;7202:12;;;;7115;;7082:142;;;-1:-1:-1;7242:6:81;6530:724;-1:-1:-1;;;;;;6530:724:81:o;7259:186::-;7307:4;-1:-1:-1;;;;;7332:6:81;7329:30;7326:56;;;7362:18;;:::i;:::-;-1:-1:-1;7428:2:81;7407:15;-1:-1:-1;;7403:29:81;7434:4;7399:40;;7259:186::o;7450:508::-;7492:5;7545:3;7538:4;7530:6;7526:17;7522:27;7512:55;;7563:1;7560;7553:12;7512:55;7599:6;7586:20;7625:31;7653:2;7625:31;:::i;:::-;7685:2;7679:9;7697:31;7725:2;7717:6;7697:31;:::i;:::-;7752:2;7744:6;7737:18;7798:3;7791:4;7786:2;7778:6;7774:15;7770:26;7767:35;7764:55;;;7815:1;7812;7805:12;7764:55;7879:2;7872:4;7864:6;7860:17;7853:4;7845:6;7841:17;7828:54;7926:1;7902:15;;;7919:4;7898:26;7891:37;;;;-1:-1:-1;7906:6:81;7450:508;-1:-1:-1;;;7450:508:81:o;7963:1071::-;8117:6;8125;8133;8141;8149;8202:3;8190:9;8181:7;8177:23;8173:33;8170:53;;;8219:1;8216;8209:12;8170:53;8258:9;8245:23;8277:31;8302:5;8277:31;:::i;:::-;8327:5;-1:-1:-1;8384:2:81;8369:18;;8356:32;8397:33;8356:32;8397:33;:::i;:::-;8449:7;-1:-1:-1;8507:2:81;8492:18;;8479:32;-1:-1:-1;;;;;8560:14:81;;;8557:34;;;8587:1;8584;8577:12;8557:34;8610:61;8663:7;8654:6;8643:9;8639:22;8610:61;:::i;:::-;8600:71;;8724:2;8713:9;8709:18;8696:32;8680:48;;8753:2;8743:8;8740:16;8737:36;;;8769:1;8766;8759:12;8737:36;8792:63;8847:7;8836:8;8825:9;8821:24;8792:63;:::i;:::-;8782:73;;8908:3;8897:9;8893:19;8880:33;8864:49;;8938:2;8928:8;8925:16;8922:36;;;8954:1;8951;8944:12;8922:36;;8977:51;9020:7;9009:8;8998:9;8994:24;8977:51;:::i;:::-;8967:61;;;7963:1071;;;;;;;;:::o;9039:411::-;9110:6;9118;9171:2;9159:9;9150:7;9146:23;9142:32;9139:52;;;9187:1;9184;9177:12;9139:52;9227:9;9214:23;-1:-1:-1;;;;;9252:6:81;9249:30;9246:50;;;9292:1;9289;9282:12;9246:50;9331:59;9382:7;9373:6;9362:9;9358:22;9331:59;:::i;:::-;9409:8;;9305:85;;-1:-1:-1;9039:411:81;-1:-1:-1;;;;9039:411:81:o;9455:546::-;9535:6;9543;9551;9604:2;9592:9;9583:7;9579:23;9575:32;9572:52;;;9620:1;9617;9610:12;9572:52;9659:9;9646:23;9678:31;9703:5;9678:31;:::i;:::-;9728:5;-1:-1:-1;9784:2:81;9769:18;;9756:32;-1:-1:-1;;;;;9800:30:81;;9797:50;;;9843:1;9840;9833:12;10006:461;10059:3;10097:5;10091:12;10124:6;10119:3;10112:19;10150:4;10179:2;10174:3;10170:12;10163:19;;10216:2;10209:5;10205:14;10237:1;10247:195;10261:6;10258:1;10255:13;10247:195;;;10326:13;;-1:-1:-1;;;;;10322:39:81;10310:52;;10382:12;;;;10417:15;;;;10358:1;10276:9;10247:195;;10472:261;10651:2;10640:9;10633:21;10614:4;10671:56;10723:2;10712:9;10708:18;10700:6;10671:56;:::i;10738:797::-;10868:6;10876;10884;10892;10945:2;10933:9;10924:7;10920:23;10916:32;10913:52;;;10961:1;10958;10951:12;10913:52;11001:9;10988:23;-1:-1:-1;;;;;11071:2:81;11063:6;11060:14;11057:34;;;11087:1;11084;11077:12;11057:34;11126:78;11196:7;11187:6;11176:9;11172:22;11126:78;:::i;:::-;11223:8;;-1:-1:-1;11100:104:81;-1:-1:-1;11311:2:81;11296:18;;11283:32;;-1:-1:-1;11327:16:81;;;11324:36;;;11356:1;11353;11346:12;11324:36;;11395:80;11467:7;11456:8;11445:9;11441:24;11395:80;:::i;:::-;10738:797;;;;-1:-1:-1;11494:8:81;-1:-1:-1;;;;10738:797:81:o;11540:924::-;11671:6;11679;11687;11695;11703;11756:2;11744:9;11735:7;11731:23;11727:32;11724:52;;;11772:1;11769;11762:12;11724:52;11811:9;11798:23;11830:31;11855:5;11830:31;:::i;:::-;11880:5;-1:-1:-1;11936:2:81;11921:18;;11908:32;-1:-1:-1;;;;;11989:14:81;;;11986:34;;;12016:1;12013;12006:12;12469:118;12555:5;12548:13;12541:21;12534:5;12531:32;12521:60;;12577:1;12574;12567:12;12592:681;12678:6;12686;12694;12702;12755:2;12743:9;12734:7;12730:23;12726:32;12723:52;;;12771:1;12768;12761:12;12723:52;12810:9;12797:23;12829:31;12854:5;12829:31;:::i;:::-;12879:5;-1:-1:-1;12935:2:81;12920:18;;12907:32;-1:-1:-1;;;;;12951:30:81;;12948:50;;;12994:1;12991;12984:12;12948:50;13033:59;13084:7;13075:6;13064:9;13060:22;13033:59;:::i;:::-;13111:8;;-1:-1:-1;13007:85:81;-1:-1:-1;;13198:2:81;13183:18;;13170:32;13211:30;13170:32;13211:30;:::i;:::-;12592:681;;;;-1:-1:-1;12592:681:81;;-1:-1:-1;;12592:681:81:o;13278:541::-;13366:6;13374;13427:2;13415:9;13406:7;13402:23;13398:32;13395:52;;;13443:1;13440;13433:12;13395:52;13483:9;13470:23;-1:-1:-1;;;;;13553:2:81;13545:6;13542:14;13539:34;;;13569:1;13566;13559:12;13539:34;13592:49;13633:7;13624:6;13613:9;13609:22;13592:49;:::i;:::-;13582:59;;13694:2;13683:9;13679:18;13666:32;13650:48;;13723:2;13713:8;13710:16;13707:36;;;13739:1;13736;13729:12;13707:36;;13762:51;13805:7;13794:8;13783:9;13779:24;13762:51;:::i;:::-;13752:61;;;13278:541;;;;;:::o;13824:1277::-;13942:6;13950;14003:2;13991:9;13982:7;13978:23;13974:32;13971:52;;;14019:1;14016;14009:12;13971:52;14059:9;14046:23;-1:-1:-1;;;;;14129:2:81;14121:6;14118:14;14115:34;;;14145:1;14142;14135:12;14115:34;14183:6;14172:9;14168:22;14158:32;;14228:7;14221:4;14217:2;14213:13;14209:27;14199:55;;14250:1;14247;14240:12;14199:55;14286:2;14273:16;14308:4;14331:43;14371:2;14331:43;:::i;:::-;14403:2;14397:9;14415:31;14443:2;14435:6;14415:31;:::i;:::-;14481:18;;;14569:1;14565:10;;;;14557:19;;14553:28;;;14515:15;;;;-1:-1:-1;14593:19:81;;;14590:39;;;14625:1;14622;14615:12;14590:39;14649:11;;;;14669:217;14685:6;14680:3;14677:15;14669:217;;;14765:3;14752:17;14782:31;14807:5;14782:31;:::i;:::-;14826:18;;14702:12;;;;14864;;;;14669:217;;;14905:6;-1:-1:-1;;14949:18:81;;14936:32;;-1:-1:-1;;14980:16:81;;;14977:36;;;15009:1;15006;14999:12;14977:36;;15032:63;15087:7;15076:8;15065:9;15061:24;15032:63;:::i;15912:1112::-;16070:6;16078;16086;16094;16102;16110;16163:2;16151:9;16142:7;16138:23;16134:32;16131:52;;;16179:1;16176;16169:12;16131:52;16219:9;16206:23;-1:-1:-1;;;;;16289:2:81;16281:6;16278:14;16275:34;;;16305:1;16302;16295:12;16275:34;16344:78;16414:7;16405:6;16394:9;16390:22;16344:78;:::i;:::-;16441:8;;-1:-1:-1;16318:104:81;-1:-1:-1;16529:2:81;16514:18;;16501:32;;-1:-1:-1;16545:16:81;;;16542:36;;;16574:1;16571;16564:12;16542:36;16613:80;16685:7;16674:8;16663:9;16659:24;16613:80;:::i;:::-;16712:8;;-1:-1:-1;16587:106:81;-1:-1:-1;16800:2:81;16785:18;;16772:32;;-1:-1:-1;16816:16:81;;;16813:36;;;16845:1;16842;16835:12;16813:36;;16884:80;16956:7;16945:8;16934:9;16930:24;16884:80;:::i;:::-;15912:1112;;;;-1:-1:-1;15912:1112:81;;-1:-1:-1;15912:1112:81;;16983:8;;15912:1112;-1:-1:-1;;;15912:1112:81:o;17029:540::-;17106:6;17114;17122;17175:2;17163:9;17154:7;17150:23;17146:32;17143:52;;;17191:1;17188;17181:12;17143:52;17231:9;17218:23;-1:-1:-1;;;;;17256:6:81;17253:30;17250:50;;;17296:1;17293;17286:12;17250:50;17335:59;17386:7;17377:6;17366:9;17362:22;17335:59;:::i;:::-;17413:8;;-1:-1:-1;17309:85:81;-1:-1:-1;;17498:2:81;17483:18;;17470:32;17511:28;17470:32;17511:28;:::i;:::-;17558:5;17548:15;;;17029:540;;;;;:::o;18703:382::-;18768:6;18776;18829:2;18817:9;18808:7;18804:23;18800:32;18797:52;;;18845:1;18842;18835:12;18797:52;18884:9;18871:23;18903:31;18928:5;18903:31;:::i;:::-;18953:5;-1:-1:-1;19010:2:81;18995:18;;18982:32;19023:30;18982:32;19023:30;:::i;:::-;19072:7;19062:17;;;18703:382;;;;;:::o;19090:241::-;19146:6;19199:2;19187:9;19178:7;19174:23;19170:32;19167:52;;;19215:1;19212;19205:12;19167:52;19254:9;19241:23;19273:28;19295:5;19273:28;:::i;20555:481::-;20828:2;20817:9;20810:21;20791:4;20854:56;20906:2;20895:9;20891:18;20883:6;20854:56;:::i;:::-;20958:9;20950:6;20946:22;20941:2;20930:9;20926:18;20919:50;20986:44;21023:6;21015;20986:44;:::i;:::-;20978:52;20555:481;-1:-1:-1;;;;;20555:481:81:o;21041:388::-;21109:6;21117;21170:2;21158:9;21149:7;21145:23;21141:32;21138:52;;;21186:1;21183;21176:12;21138:52;21225:9;21212:23;21244:31;21269:5;21244:31;:::i;:::-;21294:5;-1:-1:-1;21351:2:81;21336:18;;21323:32;21364:33;21323:32;21364:33;:::i;21434:734::-;21538:6;21546;21554;21562;21570;21623:3;21611:9;21602:7;21598:23;21594:33;21591:53;;;21640:1;21637;21630:12;21591:53;21679:9;21666:23;21698:31;21723:5;21698:31;:::i;:::-;21748:5;-1:-1:-1;21805:2:81;21790:18;;21777:32;21818:33;21777:32;21818:33;:::i;:::-;21870:7;-1:-1:-1;21924:2:81;21909:18;;21896:32;;-1:-1:-1;21975:2:81;21960:18;;21947:32;;-1:-1:-1;22030:3:81;22015:19;;22002:33;-1:-1:-1;;;;;22047:30:81;;22044:50;;;22090:1;22087;22080:12;22044:50;22113:49;22154:7;22145:6;22134:9;22130:22;22113:49;:::i;22584:400::-;22786:2;22768:21;;;22825:2;22805:18;;;22798:30;22864:34;22859:2;22844:18;;22837:62;-1:-1:-1;;;22930:2:81;22915:18;;22908:34;22974:3;22959:19;;22584:400::o;22989:380::-;23068:1;23064:12;;;;23111;;;23132:61;;23186:4;23178:6;23174:17;23164:27;;23132:61;23239:2;23231:6;23228:14;23208:18;23205:38;23202:161;;23285:10;23280:3;23276:20;23273:1;23266:31;23320:4;23317:1;23310:15;23348:4;23345:1;23338:15;23725:345;23927:2;23909:21;;;23966:2;23946:18;;;23939:30;-1:-1:-1;;;24000:2:81;23985:18;;23978:51;24061:2;24046:18;;23725:345::o;24075:410::-;24277:2;24259:21;;;24316:2;24296:18;;;24289:30;24355:34;24350:2;24335:18;;24328:62;-1:-1:-1;;;24421:2:81;24406:18;;24399:44;24475:3;24460:19;;24075:410::o;24490:127::-;24551:10;24546:3;24542:20;24539:1;24532:31;24582:4;24579:1;24572:15;24606:4;24603:1;24596:15;24622:127;24683:10;24678:3;24674:20;24671:1;24664:31;24714:4;24711:1;24704:15;24738:4;24735:1;24728:15;24754:135;24793:3;24814:17;;;24811:43;;24834:18;;:::i;:::-;-1:-1:-1;24881:1:81;24870:13;;24754:135::o;25254:337::-;25456:2;25438:21;;;25495:2;25475:18;;;25468:30;-1:-1:-1;;;25529:2:81;25514:18;;25507:43;25582:2;25567:18;;25254:337::o;26620:522::-;26698:4;26704:6;26764:11;26751:25;26858:2;26854:7;26843:8;26827:14;26823:29;26819:43;26799:18;26795:68;26785:96;;26877:1;26874;26867:12;26785:96;26904:33;;26956:20;;;-1:-1:-1;;;;;;26988:30:81;;26985:50;;;27031:1;27028;27021:12;26985:50;27064:4;27052:17;;-1:-1:-1;27095:14:81;27091:27;;;27081:38;;27078:58;;;27132:1;27129;27122:12;27147:337;27349:2;27331:21;;;27388:2;27368:18;;;27361:30;-1:-1:-1;;;27422:2:81;27407:18;;27400:43;27475:2;27460:18;;27147:337::o;29135:722::-;29185:3;29226:5;29220:12;29255:36;29281:9;29255:36;:::i;:::-;29310:1;29327:18;;;29354:133;;;;29501:1;29496:355;;;;29320:531;;29354:133;-1:-1:-1;;29387:24:81;;29375:37;;29460:14;;29453:22;29441:35;;29432:45;;;-1:-1:-1;29354:133:81;;29496:355;29527:5;29524:1;29517:16;29556:4;29601:2;29598:1;29588:16;29626:1;29640:165;29654:6;29651:1;29648:13;29640:165;;;29732:14;;29719:11;;;29712:35;29775:16;;;;29669:10;;29640:165;;;29644:3;;;29834:6;29829:3;29825:16;29818:23;;29320:531;;;;;29135:722;;;;:::o;29862:277::-;30035:3;30060:73;30094:38;30128:3;30120:6;30094:38;:::i;:::-;30086:6;30060:73;:::i;:::-;30053:80;29862:277;-1:-1:-1;;;;29862:277:81:o;30144:703::-;30224:6;30277:2;30265:9;30256:7;30252:23;30248:32;30245:52;;;30293:1;30290;30283:12;30245:52;30326:9;30320:16;-1:-1:-1;;;;;30351:6:81;30348:30;30345:50;;;30391:1;30388;30381:12;30345:50;30414:22;;30467:4;30459:13;;30455:27;-1:-1:-1;30445:55:81;;30496:1;30493;30486:12;30445:55;30525:2;30519:9;30547:31;30575:2;30547:31;:::i;:::-;30607:2;30601:9;30619:31;30647:2;30639:6;30619:31;:::i;:::-;30674:2;30666:6;30659:18;30714:7;30709:2;30704;30700;30696:11;30692:20;30689:33;30686:53;;;30735:1;30732;30725:12;30686:53;30748:68;30813:2;30808;30800:6;30796:15;30791:2;30787;30783:11;30748:68;:::i;30852:389::-;31028:3;31056:38;31090:3;31082:6;31056:38;:::i;:::-;31123:6;31117:13;31139:65;31197:6;31193:2;31186:4;31178:6;31174:17;31139:65;:::i;:::-;31220:15;;30852:389;-1:-1:-1;;;;30852:389:81:o;31246:545::-;31348:2;31343:3;31340:11;31337:448;;;31384:1;31409:5;31405:2;31398:17;31454:4;31450:2;31440:19;31524:2;31512:10;31508:19;31505:1;31501:27;31495:4;31491:38;31560:4;31548:10;31545:20;31542:47;;;-1:-1:-1;31583:4:81;31542:47;31638:2;31633:3;31629:12;31626:1;31622:20;31616:4;31612:31;31602:41;;31693:82;31711:2;31704:5;31701:13;31693:82;;;31756:17;;;31737:1;31726:13;31693:82;;31796:166;-1:-1:-1;;31924:1:81;31920:11;;;31916:24;31912:29;31902:40;31948:1;31944:11;;;;31899:57;;31796:166::o;31967:1206::-;-1:-1:-1;;;;;32086:3:81;32083:27;32080:53;;;32113:18;;:::i;:::-;32142:94;32232:3;32192:38;32224:4;32218:11;32192:38;:::i;:::-;32186:4;32142:94;:::i;:::-;32262:1;32287:2;32282:3;32279:11;32304:1;32299:616;;;;32959:1;32976:3;32973:93;;;-1:-1:-1;33032:19:81;;;33019:33;32973:93;33092:64;33152:3;33145:5;33092:64;:::i;:::-;33086:4;33079:78;;32272:895;;32299:616;29082:1;29075:14;;;29119:4;29106:18;;-1:-1:-1;;32335:17:81;;;32436:9;32458:229;32472:7;32469:1;32466:14;32458:229;;;32561:19;;;32548:33;32533:49;;32668:4;32653:20;;;;32621:1;32609:14;;;;32488:12;32458:229;;;32462:3;32715;32706:7;32703:16;32700:159;;;32839:1;32835:6;32829:3;32823;32820:1;32816:11;32812:21;32808:34;32804:39;32791:9;32786:3;32782:19;32769:33;32765:79;32757:6;32750:95;32700:159;;;32902:1;32896:3;32893:1;32889:11;32885:19;32879:4;32872:33;32272:895;;31967:1206;;;:::o;33178:311::-;33266:19;;;33248:3;-1:-1:-1;;;;;33297:31:81;;33294:51;;;33341:1;33338;33331:12;33294:51;33377:6;33374:1;33370:14;33429:8;33422:5;33415:4;33410:3;33406:14;33393:45;33458:18;;;;33478:4;33454:29;;33178:311;-1:-1:-1;;;33178:311:81:o;33494:928::-;33798:2;33810:21;;;33783:18;;33866:22;;;33750:4;33945:6;33919:2;33904:18;;33750:4;33979:304;33993:6;33990:1;33987:13;33979:304;;;34068:6;34055:20;34088:31;34113:5;34088:31;:::i;:::-;-1:-1:-1;;;;;34144:31:81;34132:44;;34199:4;34258:15;;;;34223:12;;;;34172:1;34008:9;33979:304;;;33983:3;34330:9;34325:3;34321:19;34314:4;34303:9;34299:20;34292:49;34358:58;34412:3;34404:6;34396;34358:58;:::i;:::-;34350:66;33494:928;-1:-1:-1;;;;;;;;33494:928:81:o;34784:168::-;34857:9;;;34888;;34905:15;;;34899:22;;34885:37;34875:71;;34926:18;;:::i;35089:217::-;35129:1;35155;35145:132;;35199:10;35194:3;35190:20;35187:1;35180:31;35234:4;35231:1;35224:15;35262:4;35259:1;35252:15;35145:132;-1:-1:-1;35291:9:81;;35089:217::o;35672:404::-;35874:2;35856:21;;;35913:2;35893:18;;;35886:30;35952:34;35947:2;35932:18;;35925:62;-1:-1:-1;;;36018:2:81;36003:18;;35996:38;36066:3;36051:19;;35672:404::o;36081:401::-;36283:2;36265:21;;;36322:2;36302:18;;;36295:30;36361:34;36356:2;36341:18;;36334:62;-1:-1:-1;;;36427:2:81;36412:18;;36405:35;36472:3;36457:19;;36081:401::o;36487:406::-;36689:2;36671:21;;;36728:2;36708:18;;;36701:30;36767:34;36762:2;36747:18;;36740:62;-1:-1:-1;;;36833:2:81;36818:18;;36811:40;36883:3;36868:19;;36487:406::o;36898:125::-;36963:9;;;36984:10;;;36981:36;;;36997:18;;:::i;37028:465::-;37285:2;37274:9;37267:21;37248:4;37311:56;37363:2;37352:9;37348:18;37340:6;37311:56;:::i;38193:128::-;38260:9;;;38281:11;;;38278:37;;;38295:18;;:::i;38326:352::-;38528:2;38510:21;;;38567:2;38547:18;;;38540:30;-1:-1:-1;;;38601:2:81;38586:18;;38579:58;38669:2;38654:18;;38326:352::o;38683:616::-;-1:-1:-1;;;;;38988:32:81;;38970:51;;39057:2;39052;39037:18;;39030:30;;;-1:-1:-1;;39083:73:81;;39137:18;;39129:6;39121;39083:73;:::i;:::-;39204:9;39196:6;39192:22;39187:2;39176:9;39172:18;39165:50;39232:61;39286:6;39278;39270;39232:61;:::i;39661:407::-;39863:2;39845:21;;;39902:2;39882:18;;;39875:30;39941:34;39936:2;39921:18;;39914:62;-1:-1:-1;;;40007:2:81;39992:18;;39985:41;40058:3;40043:19;;39661:407::o;40483:721::-;40548:5;40601:3;40594:4;40586:6;40582:17;40578:27;40568:55;;40619:1;40616;40609:12;40568:55;40648:6;40642:13;40674:4;40697:43;40737:2;40697:43;:::i;:::-;40769:2;40763:9;40781:31;40809:2;40801:6;40781:31;:::i;:::-;40847:18;;;40939:1;40935:10;;;;40923:23;;40919:32;;;40881:15;;;;-1:-1:-1;40963:15:81;;;40960:35;;;40991:1;40988;40981:12;40960:35;41027:2;41019:6;41015:15;41039:135;41055:6;41050:3;41047:15;41039:135;;;41121:10;;41109:23;;41152:12;;;;41072;;41039:135;;41209:1279;41346:6;41354;41407:2;41395:9;41386:7;41382:23;41378:32;41375:52;;;41423:1;41420;41413:12;41375:52;41456:9;41450:16;-1:-1:-1;;;;;41526:2:81;41518:6;41515:14;41512:34;;;41542:1;41539;41532:12;41512:34;41580:6;41569:9;41565:22;41555:32;;41625:7;41618:4;41614:2;41610:13;41606:27;41596:55;;41647:1;41644;41637:12;41596:55;41676:2;41670:9;41698:4;41721:43;41761:2;41721:43;:::i;:::-;41793:2;41787:9;41805:31;41833:2;41825:6;41805:31;:::i;:::-;41871:18;;;41959:1;41955:10;;;;41947:19;;41943:28;;;41905:15;;;;-1:-1:-1;41983:19:81;;;41980:39;;;42015:1;42012;42005:12;41980:39;42039:11;;;;42059:210;42075:6;42070:3;42067:15;42059:210;;;42148:3;42142:10;42165:31;42190:5;42165:31;:::i;:::-;42209:18;;42092:12;;;;42247;;;;42059:210;;;42325:18;;;42319:25;42288:6;;-1:-1:-1;42319:25:81;;-1:-1:-1;;;42356:16:81;;;42353:36;;;42385:1;42382;42375:12;42353:36;;42408:74;42474:7;42463:8;42452:9;42448:24;42408:74;:::i;44048:127::-;44109:10;44104:3;44100:20;44097:1;44090:31;44140:4;44137:1;44130:15;44164:4;44161:1;44154:15;44180:827;-1:-1:-1;;;;;44577:15:81;;;44559:34;;44629:15;;44624:2;44609:18;;44602:43;44539:3;44676:2;44661:18;;44654:31;;;44502:4;;44708:57;;44745:19;;44737:6;44708:57;:::i;:::-;44813:9;44805:6;44801:22;44796:2;44785:9;44781:18;44774:50;44847:44;44884:6;44876;44847:44;:::i;:::-;44833:58;;44940:9;44932:6;44928:22;44922:3;44911:9;44907:19;44900:51;44968:33;44994:6;44986;44968:33;:::i;45012:249::-;45081:6;45134:2;45122:9;45113:7;45109:23;45105:32;45102:52;;;45150:1;45147;45140:12;45102:52;45182:9;45176:16;45201:30;45225:5;45201:30;:::i;45266:179::-;45301:3;45343:1;45325:16;45322:23;45319:120;;;45389:1;45386;45383;45368:23;-1:-1:-1;45426:1:81;45420:8;45415:3;45411:18;45319:120;45266:179;:::o;45450:671::-;45489:3;45531:4;45513:16;45510:26;45507:39;;;45450:671;:::o;45507:39::-;45573:2;45567:9;-1:-1:-1;;45638:16:81;45634:25;;45631:1;45567:9;45610:50;45689:4;45683:11;45713:16;-1:-1:-1;;;;;45819:2:81;45812:4;45804:6;45800:17;45797:25;45792:2;45784:6;45781:14;45778:45;45775:58;;;45826:5;;;;;45450:671;:::o;45775:58::-;45863:6;45857:4;45853:17;45842:28;;45899:3;45893:10;45926:2;45918:6;45915:14;45912:27;;;45932:5;;;;;;45450:671;:::o;45912:27::-;46016:2;45997:16;45991:4;45987:27;45983:36;45976:4;45967:6;45962:3;45958:16;45954:27;45951:69;45948:82;;;46023:5;;;;;;45450:671;:::o;45948:82::-;46039:57;46090:4;46081:6;46073;46069:19;46065:30;46059:4;46039:57;:::i;:::-;-1:-1:-1;46112:3:81;;45450:671;-1:-1:-1;;;;;45450:671:81:o;46547:404::-;46749:2;46731:21;;;46788:2;46768:18;;;46761:30;46827:34;46822:2;46807:18;;46800:62;-1:-1:-1;;;46893:2:81;46878:18;;46871:38;46941:3;46926:19;;46547:404::o;46956:399::-;47158:2;47140:21;;;47197:2;47177:18;;;47170:30;47236:34;47231:2;47216:18;;47209:62;-1:-1:-1;;;47302:2:81;47287:18;;47280:33;47345:3;47330:19;;46956:399::o;47360:400::-;47562:2;47544:21;;;47601:2;47581:18;;;47574:30;47640:34;47635:2;47620:18;;47613:62;-1:-1:-1;;;47706:2:81;47691:18;;47684:34;47750:3;47735:19;;47360:400::o;47765:1352::-;47891:3;47885:10;-1:-1:-1;;;;;47910:6:81;47907:30;47904:56;;;47940:18;;:::i;:::-;47969:97;48059:6;48019:38;48051:4;48045:11;48019:38;:::i;:::-;48013:4;47969:97;:::i;:::-;48121:4;;48185:2;48174:14;;48202:1;48197:663;;;;48904:1;48921:6;48918:89;;;-1:-1:-1;48973:19:81;;;48967:26;48918:89;49033:67;49093:6;49086:5;49033:67;:::i;:::-;49027:4;49020:81;;48167:944;;48197:663;29082:1;29075:14;;;29119:4;29106:18;;-1:-1:-1;;48233:20:81;;;48351:236;48365:7;48362:1;48359:14;48351:236;;;48454:19;;;48448:26;48433:42;;48546:27;;;;48514:1;48502:14;;;;48381:19;;48351:236;;;48355:3;48615:6;48606:7;48603:19;48600:201;;;48676:19;;;48670:26;-1:-1:-1;;48759:1:81;48755:14;;;48771:3;48751:24;48747:37;48743:42;48728:58;48713:74;;48600:201;-1:-1:-1;;;;;48847:1:81;48831:14;;;48827:22;48814:36;;-1:-1:-1;47765:1352:81:o;49122:768::-;-1:-1:-1;;;;;49485:32:81;;49467:51;;49554:3;49549:2;49534:18;;49527:31;;;-1:-1:-1;;49581:57:81;;49618:19;;49610:6;49581:57;:::i;:::-;49686:9;49678:6;49674:22;49669:2;49658:9;49654:18;49647:50;49720:44;49757:6;49749;49720:44;:::i;:::-;49706:58;;49812:9;49804:6;49800:22;49795:2;49784:9;49780:18;49773:50;49840:44;49877:6;49869;49840:44;:::i;49895:561::-;-1:-1:-1;;;;;50192:15:81;;;50174:34;;50244:15;;50239:2;50224:18;;50217:43;50291:2;50276:18;;50269:34;;;50334:2;50319:18;;50312:34;;;50154:3;50377;50362:19;;50355:32;;;50117:4;;50404:46;;50430:19;;50422:6;50404:46;:::i;50668:746::-;-1:-1:-1;;;;;51047:15:81;;;51029:34;;51099:15;;;51094:2;51079:18;;51072:43;51151:15;;51146:2;51131:18;;51124:43;51009:3;51198:2;51183:18;;51176:31;;;50972:4;;51230:57;;51267:19;;51259:6;51230:57;:::i;:::-;51336:9;51328:6;51324:22;51318:3;51307:9;51303:19;51296:51;51364:44;51401:6;51393;51364:44;:::i;51419:245::-;51486:6;51539:2;51527:9;51518:7;51514:23;51510:32;51507:52;;;51555:1;51552;51545:12;51507:52;51587:9;51581:16;51606:28;51628:5;51606:28;:::i;51669:350::-;51871:2;51853:21;;;51910:2;51890:18;;;51883:30;-1:-1:-1;;;51944:2:81;51929:18;;51922:56;52010:2;51995:18;;51669:350::o;52024:397::-;52226:2;52208:21;;;52265:2;52245:18;;;52238:30;52304:34;52299:2;52284:18;;52277:62;-1:-1:-1;;;52370:2:81;52355:18;;52348:31;52411:3;52396:19;;52024:397::o",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/// @author: manifold.xyz\n\nimport \"@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol\";\n\nimport \"./core/ERC1155CreatorCore.sol\";\nimport \"./token/ERC1155/ERC1155Upgradeable.sol\";\n\n/**\n * @dev ERC1155Creator implementation (using transparent upgradeable proxy)\n */\ncontract ERC1155CreatorUpgradeable is AdminControlUpgradeable, ERC1155Upgradeable, ERC1155CreatorCore {\n    using EnumerableSet for EnumerableSet.AddressSet;\n\n    mapping(uint256 => uint256) private _totalSupply;\n\n    /**\n     * Initializer\n     */\n    function initialize(string memory _name, string memory _symbol) public initializer {\n        __ERC1155_init(_name, _symbol);\n        __Ownable_init();\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC1155Core, ERC1155CreatorCore, AdminControlUpgradeable) returns (bool) {\n        return ERC1155CreatorCore.supportsInterface(interfaceId) || ERC1155Core.supportsInterface(interfaceId) || AdminControlUpgradeable.supportsInterface(interfaceId);\n    }\n\n    function _beforeTokenTransfer(address, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory) internal virtual override {\n        _approveTransfer(from, to, ids, amounts);\n    }\n\n    /**\n     * @dev See {ICreatorCore-registerExtension}.\n     */\n    function registerExtension(address extension, string calldata baseURI) external override adminRequired {\n        requireNonBlacklist(extension);\n        _registerExtension(extension, baseURI, false);\n    }\n\n    /**\n     * @dev See {ICreatorCore-registerExtension}.\n     */\n    function registerExtension(address extension, string calldata baseURI, bool baseURIIdentical) external override adminRequired {\n        requireNonBlacklist(extension);\n        _registerExtension(extension, baseURI, baseURIIdentical);\n    }\n\n\n    /**\n     * @dev See {ICreatorCore-unregisterExtension}.\n     */\n    function unregisterExtension(address extension) external override adminRequired {\n        _unregisterExtension(extension);\n    }\n\n    /**\n     * @dev See {ICreatorCore-blacklistExtension}.\n     */\n    function blacklistExtension(address extension) external override adminRequired {\n        _blacklistExtension(extension);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setBaseTokenURIExtension}.\n     */\n    function setBaseTokenURIExtension(string calldata uri_) external override {\n        requireExtension();\n        _setBaseTokenURIExtension(uri_, false);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setBaseTokenURIExtension}.\n     */\n    function setBaseTokenURIExtension(string calldata uri_, bool identical) external override {\n        requireExtension();\n        _setBaseTokenURIExtension(uri_, identical);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIPrefixExtension}.\n     */\n    function setTokenURIPrefixExtension(string calldata prefix) external override {\n        requireExtension();\n        _setTokenURIPrefixExtension(prefix);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIExtension}.\n     */\n    function setTokenURIExtension(uint256 tokenId, string calldata uri_) external override {\n        requireExtension();\n        _setTokenURIExtension(tokenId, uri_);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIExtension}.\n     */\n    function setTokenURIExtension(uint256[] calldata tokenIds, string[] calldata uris) external override {\n        requireExtension();\n        require(tokenIds.length == uris.length, \"Invalid input\");\n        for (uint i; i < tokenIds.length;) {\n            _setTokenURIExtension(tokenIds[i], uris[i]);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ICreatorCore-setBaseTokenURI}.\n     */\n    function setBaseTokenURI(string calldata uri_) external override adminRequired {\n        _setBaseTokenURI(uri_);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIPrefix}.\n     */\n    function setTokenURIPrefix(string calldata prefix) external override adminRequired {\n        _setTokenURIPrefix(prefix);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURI}.\n     */\n    function setTokenURI(uint256 tokenId, string calldata uri_) external override adminRequired {\n        _setTokenURI(tokenId, uri_);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURI}.\n     */\n    function setTokenURI(uint256[] calldata tokenIds, string[] calldata uris) external override adminRequired {\n        require(tokenIds.length == uris.length, \"Invalid input\");\n        for (uint i; i < tokenIds.length;) {\n            _setTokenURI(tokenIds[i], uris[i]);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ICreatorCore-setMintPermissions}.\n     */\n    function setMintPermissions(address extension, address permissions) external override adminRequired {\n        _setMintPermissions(extension, permissions);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintBaseNew}.\n     */\n    function mintBaseNew(address[] calldata to, uint256[] calldata amounts, string[] calldata uris) public virtual override nonReentrant adminRequired returns(uint256[] memory) {\n        return _mintNew(address(0), to, amounts, uris);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintBaseExisting}.\n     */\n    function mintBaseExisting(address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) public virtual override nonReentrant adminRequired {\n        for (uint i; i < tokenIds.length;) {\n            uint256 tokenId = tokenIds[i];\n            require(tokenId > 0 && tokenId <= _tokenCount, \"Invalid token\");\n            require(_tokenExtension(tokenId) == address(0), \"Token created by extension\");\n            unchecked { ++i; }\n        }\n        _mintExisting(address(0), to, tokenIds, amounts);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintExtensionNew}.\n     */\n    function mintExtensionNew(address[] calldata to, uint256[] calldata amounts, string[] calldata uris) public virtual override nonReentrant returns(uint256[] memory tokenIds) {\n        requireExtension();\n        return _mintNew(msg.sender, to, amounts, uris);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintExtensionExisting}.\n     */\n    function mintExtensionExisting(address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) public virtual override nonReentrant {\n        requireExtension();\n        for (uint i; i < tokenIds.length;) {\n            require(_tokenExtension(tokenIds[i]) == address(msg.sender), \"Token not created by this extension\");\n            unchecked { ++i; }\n        }\n        _mintExisting(msg.sender, to, tokenIds, amounts);\n    }\n\n    /**\n     * @dev Mint new tokens\n     */\n    function _mintNew(address extension, address[] calldata to, uint256[] calldata amounts, string[] calldata uris) internal returns(uint256[] memory tokenIds) {\n        if (to.length > 1) {\n            // Multiple receiver.  Give every receiver the same new token\n            tokenIds = new uint256[](1);\n            require(uris.length <= 1 && (amounts.length == 1 || to.length == amounts.length), \"Invalid input\");\n        } else {\n            // Single receiver.  Generating multiple tokens\n            tokenIds = new uint256[](amounts.length);\n            require(uris.length == 0 || amounts.length == uris.length, \"Invalid input\");\n        }\n\n        // Assign tokenIds\n        for (uint i; i < tokenIds.length;) {\n            ++_tokenCount;\n            tokenIds[i] = _tokenCount;\n            // Track the extension that minted the token\n            _tokensExtension[_tokenCount] = extension;\n            unchecked { ++i; }\n        }\n\n        if (extension != address(0)) {\n            _checkMintPermissions(to, tokenIds, amounts);\n        }\n\n        if (to.length == 1 && tokenIds.length == 1) {\n           // Single mint\n           _mint(to[0], tokenIds[0], amounts[0], new bytes(0));\n        } else if (to.length > 1) {\n            // Multiple receivers.  Receiving the same token\n            if (amounts.length == 1) {\n                // Everyone receiving the same amount\n                for (uint i; i < to.length;) {\n                    _mint(to[i], tokenIds[0], amounts[0], new bytes(0));\n                    unchecked { ++i; }\n                }\n            } else {\n                // Everyone receiving different amounts\n                for (uint i; i < to.length;) {\n                    _mint(to[i], tokenIds[0], amounts[i], new bytes(0));\n                    unchecked { ++i; }\n                }\n            }\n        } else {\n            _mintBatch(to[0], tokenIds, amounts, new bytes(0));\n        }\n\n        for (uint i; i < tokenIds.length;) {\n            if (i < uris.length && bytes(uris[i]).length > 0) {\n                _tokenURIs[tokenIds[i]] = uris[i];\n            }\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev Mint existing tokens\n     */\n    function _mintExisting(address extension, address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) internal {\n        if (extension != address(0)) {\n            _checkMintPermissions(to, tokenIds, amounts);\n        }\n\n        if (to.length == 1 && tokenIds.length == 1 && amounts.length == 1) {\n             // Single mint\n            _mint(to[0], tokenIds[0], amounts[0], new bytes(0));            \n        } else if (to.length == 1 && tokenIds.length == amounts.length) {\n            // Batch mint to same receiver\n            _mintBatch(to[0], tokenIds, amounts, new bytes(0));\n        } else if (tokenIds.length == 1 && amounts.length == 1) {\n            // Mint of the same token/token amounts to various receivers\n            for (uint i; i < to.length;) {\n                _mint(to[i], tokenIds[0], amounts[0], new bytes(0));\n                unchecked { ++i; }\n            }\n        } else if (tokenIds.length == 1 && to.length == amounts.length) {\n            // Mint of the same token with different amounts to different receivers\n            for (uint i; i < to.length;) {\n                _mint(to[i], tokenIds[0], amounts[i], new bytes(0));\n                unchecked { ++i; }\n            }\n        } else if (to.length == tokenIds.length && to.length == amounts.length) {\n            // Mint of different tokens and different amounts to different receivers\n            for (uint i; i < to.length;) {\n                _mint(to[i], tokenIds[i], amounts[i], new bytes(0));\n                unchecked { ++i; }\n            }\n        } else {\n            revert(\"Invalid input\");\n        }\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-tokenExtension}.\n     */\n    function tokenExtension(uint256 tokenId) public view virtual override returns (address extension) {\n        extension = _tokenExtension(tokenId);\n        require(extension != address(0), \"No extension for token\");\n        require(!_blacklistedExtensions.contains(extension), \"Extension blacklisted\");\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-burn}.\n     */\n    function burn(address account, uint256[] calldata tokenIds, uint256[] calldata amounts) public virtual override nonReentrant {\n        require(account == msg.sender || isApprovedForAll(account, msg.sender), \"Caller is not owner or approved\");\n        require(tokenIds.length == amounts.length, \"Invalid input\");\n        if (tokenIds.length == 1) {\n            _burn(account, tokenIds[0], amounts[0]);\n        } else {\n            _burnBatch(account, tokenIds, amounts);\n        }\n        _postBurn(account, tokenIds, amounts);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setRoyalties}.\n     */\n    function setRoyalties(address payable[] calldata receivers, uint256[] calldata basisPoints) external override adminRequired {\n        _setRoyaltiesExtension(address(0), receivers, basisPoints);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setRoyalties}.\n     */\n    function setRoyalties(uint256 tokenId, address payable[] calldata receivers, uint256[] calldata basisPoints) external override adminRequired {\n        _setRoyalties(tokenId, receivers, basisPoints);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setRoyaltiesExtension}.\n     */\n    function setRoyaltiesExtension(address extension, address payable[] calldata receivers, uint256[] calldata basisPoints) external override adminRequired {\n        _setRoyaltiesExtension(extension, receivers, basisPoints);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getRoyalties}.\n     */\n    function getRoyalties(uint256 tokenId) external view virtual override returns (address payable[] memory, uint256[] memory) {\n        return _getRoyalties(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getFees}.\n     */\n    function getFees(uint256 tokenId) external view virtual override returns (address payable[] memory, uint256[] memory) {\n        return _getRoyalties(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getFeeRecipients}.\n     */\n    function getFeeRecipients(uint256 tokenId) external view virtual override returns (address payable[] memory) {\n        return _getRoyaltyReceivers(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getFeeBps}.\n     */\n    function getFeeBps(uint256 tokenId) external view virtual override returns (uint[] memory) {\n        return _getRoyaltyBPS(tokenId);\n    }\n    \n    /**\n     * @dev See {ICreatorCore-royaltyInfo}.\n     */\n    function royaltyInfo(uint256 tokenId, uint256 value) external view virtual override returns (address, uint256) {\n        return _getRoyaltyInfo(tokenId, value);\n    } \n\n    /**\n     * @dev See {IERC1155MetadataURI-uri}.\n     */\n    function uri(uint256 tokenId) public view virtual override returns (string memory) {\n        return _tokenURI(tokenId);\n    }\n    \n    /**\n     * @dev Total amount of tokens in with a given id.\n     */\n    function totalSupply(uint256 tokenId) external view virtual override returns (uint256) {\n        return _totalSupply[tokenId];\n    }\n\n    /**\n     * @dev See {ERC1155-_mint}.\n     */\n    function _mint(address account, uint256 id, uint256 amount, bytes memory data) internal virtual override {\n        super._mint(account, id, amount, data);\n        _totalSupply[id] += amount;\n    }\n\n    /**\n     * @dev See {ERC1155-_mintBatch}.\n     */\n    function _mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) internal virtual override {\n        super._mintBatch(to, ids, amounts, data);\n        for (uint i; i < ids.length;) {\n            _totalSupply[ids[i]] += amounts[i];\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ERC1155-_burn}.\n     */\n    function _burn(address account, uint256 id, uint256 amount) internal virtual override {\n        super._burn(account, id, amount);\n        _totalSupply[id] -= amount;\n    }\n\n    /**\n     * @dev See {ERC1155-_burnBatch}.\n     */\n    function _burnBatch(address account, uint256[] memory ids, uint256[] memory amounts) internal virtual override {\n        super._burnBatch(account, ids, amounts);\n        for (uint i; i < ids.length;) {\n            _totalSupply[ids[i]] -= amounts[i];\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ICreatorCore-setApproveTransfer}.\n     */\n    function setApproveTransfer(address extension) external override adminRequired {\n        _setApproveTransferBase(extension);\n    }\n}",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/ERC1155CreatorUpgradeable.sol",
  "ast": {
    "absolutePath": "project:/contracts/ERC1155CreatorUpgradeable.sol",
    "exportedSymbols": {
      "Address": [
        1911
      ],
      "AddressUpgradeable": [
        1002
      ],
      "AdminControlUpgradeable": [
        371
      ],
      "ContextUpgradeable": [
        1044
      ],
      "CreatorCore": [
        13473
      ],
      "ERC1155Core": [
        19726
      ],
      "ERC1155CreatorCore": [
        13854
      ],
      "ERC1155CreatorUpgradeable": [
        8327
      ],
      "ERC1155Upgradeable": [
        19778
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "EnumerableSet": [
        3816
      ],
      "IAdminControl": [
        417
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionRoyalties": [
        16574
      ],
      "ICreatorExtensionTokenURI": [
        16591
      ],
      "IERC1155": [
        1333
      ],
      "IERC1155CreatorCore": [
        15282
      ],
      "IERC1155CreatorExtensionApproveTransfer": [
        16055
      ],
      "IERC1155CreatorExtensionBurnable": [
        16074
      ],
      "IERC1155CreatorMintPermissions": [
        18396
      ],
      "IERC1155MetadataURI": [
        1389
      ],
      "IERC1155Receiver": [
        1374
      ],
      "IERC165": [
        2338
      ],
      "Initializable": [
        718
      ],
      "Math": [
        3203
      ],
      "OwnableUpgradeable": [
        549
      ],
      "ReentrancyGuard": [
        1211
      ],
      "Strings": [
        2108
      ]
    },
    "id": 8328,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6823,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:26"
      },
      {
        "absolutePath": "@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol",
        "file": "@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol",
        "id": 6824,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 8328,
        "sourceUnit": 372,
        "src": "85:86:26",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/core/ERC1155CreatorCore.sol",
        "file": "./core/ERC1155CreatorCore.sol",
        "id": 6825,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 8328,
        "sourceUnit": 13855,
        "src": "173:39:26",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/token/ERC1155/ERC1155Upgradeable.sol",
        "file": "./token/ERC1155/ERC1155Upgradeable.sol",
        "id": 6826,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 8328,
        "sourceUnit": 19779,
        "src": "213:48:26",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 6828,
              "name": "AdminControlUpgradeable",
              "nameLocations": [
                "385:23:26"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 371,
              "src": "385:23:26"
            },
            "id": 6829,
            "nodeType": "InheritanceSpecifier",
            "src": "385:23:26"
          },
          {
            "baseName": {
              "id": 6830,
              "name": "ERC1155Upgradeable",
              "nameLocations": [
                "410:18:26"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 19778,
              "src": "410:18:26"
            },
            "id": 6831,
            "nodeType": "InheritanceSpecifier",
            "src": "410:18:26"
          },
          {
            "baseName": {
              "id": 6832,
              "name": "ERC1155CreatorCore",
              "nameLocations": [
                "430:18:26"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 13854,
              "src": "430:18:26"
            },
            "id": 6833,
            "nodeType": "InheritanceSpecifier",
            "src": "430:18:26"
          }
        ],
        "canonicalName": "ERC1155CreatorUpgradeable",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 6827,
          "nodeType": "StructuredDocumentation",
          "src": "263:83:26",
          "text": " @dev ERC1155Creator implementation (using transparent upgradeable proxy)"
        },
        "fullyImplemented": true,
        "id": 8327,
        "linearizedBaseContracts": [
          8327,
          13854,
          15282,
          13473,
          19778,
          19726,
          1389,
          1333,
          371,
          2132,
          15197,
          417,
          2338,
          1211,
          549,
          1044,
          718
        ],
        "name": "ERC1155CreatorUpgradeable",
        "nameLocation": "356:25:26",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 6837,
            "libraryName": {
              "id": 6834,
              "name": "EnumerableSet",
              "nameLocations": [
                "461:13:26"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 3816,
              "src": "461:13:26"
            },
            "nodeType": "UsingForDirective",
            "src": "455:49:26",
            "typeName": {
              "id": 6836,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 6835,
                "name": "EnumerableSet.AddressSet",
                "nameLocations": [
                  "479:13:26",
                  "493:10:26"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 3529,
                "src": "479:24:26"
              },
              "referencedDeclaration": 3529,
              "src": "479:24:26",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_AddressSet_$3529_storage_ptr",
                "typeString": "struct EnumerableSet.AddressSet"
              }
            }
          },
          {
            "constant": false,
            "id": 6841,
            "mutability": "mutable",
            "name": "_totalSupply",
            "nameLocation": "546:12:26",
            "nodeType": "VariableDeclaration",
            "scope": 8327,
            "src": "510:48:26",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 6840,
              "keyName": "",
              "keyNameLocation": "-1:-1:-1",
              "keyType": {
                "id": 6838,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "518:7:26",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "510:27:26",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueName": "",
              "valueNameLocation": "-1:-1:-1",
              "valueType": {
                "id": 6839,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "529:7:26",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 6859,
              "nodeType": "Block",
              "src": "683:73:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6852,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6844,
                        "src": "708:5:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "id": 6853,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6846,
                        "src": "715:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 6851,
                      "name": "__ERC1155_init",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19759,
                      "src": "693:14:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 6854,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "693:30:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6855,
                  "nodeType": "ExpressionStatement",
                  "src": "693:30:26"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6856,
                      "name": "__Ownable_init",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 444,
                      "src": "733:14:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 6857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "733:16:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6858,
                  "nodeType": "ExpressionStatement",
                  "src": "733:16:26"
                }
              ]
            },
            "documentation": {
              "id": 6842,
              "nodeType": "StructuredDocumentation",
              "src": "565:30:26",
              "text": " Initializer"
            },
            "functionSelector": "4cd88b76",
            "id": 6860,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6849,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6848,
                  "name": "initializer",
                  "nameLocations": [
                    "671:11:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 620,
                  "src": "671:11:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "671:11:26"
              }
            ],
            "name": "initialize",
            "nameLocation": "609:10:26",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6847,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6844,
                  "mutability": "mutable",
                  "name": "_name",
                  "nameLocation": "634:5:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6860,
                  "src": "620:19:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6843,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "620:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6846,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "655:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6860,
                  "src": "641:21:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6845,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "641:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "619:44:26"
            },
            "returnParameters": {
              "id": 6850,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "683:0:26"
            },
            "scope": 8327,
            "src": "600:156:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              228,
              13529,
              18586
            ],
            "body": {
              "id": 6887,
              "nodeType": "Block",
              "src": "972:177:26",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 6885,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 6880,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "arguments": [
                          {
                            "id": 6874,
                            "name": "interfaceId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6863,
                            "src": "1026:11:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 6872,
                            "name": "ERC1155CreatorCore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13854,
                            "src": "989:18:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC1155CreatorCore_$13854_$",
                              "typeString": "type(contract ERC1155CreatorCore)"
                            }
                          },
                          "id": 6873,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1008:17:26",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13529,
                          "src": "989:36:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (bytes4) view returns (bool)"
                          }
                        },
                        "id": 6875,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "989:49:26",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "arguments": [
                          {
                            "id": 6878,
                            "name": "interfaceId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6863,
                            "src": "1072:11:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 6876,
                            "name": "ERC1155Core",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19726,
                            "src": "1042:11:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC1155Core_$19726_$",
                              "typeString": "type(contract ERC1155Core)"
                            }
                          },
                          "id": 6877,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1054:17:26",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18586,
                          "src": "1042:29:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (bytes4) view returns (bool)"
                          }
                        },
                        "id": 6879,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1042:42:26",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "989:95:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 6883,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6863,
                          "src": "1130:11:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 6881,
                          "name": "AdminControlUpgradeable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 371,
                          "src": "1088:23:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_AdminControlUpgradeable_$371_$",
                            "typeString": "type(contract AdminControlUpgradeable)"
                          }
                        },
                        "id": 6882,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1112:17:26",
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 228,
                        "src": "1088:41:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 6884,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1088:54:26",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "989:153:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6871,
                  "id": 6886,
                  "nodeType": "Return",
                  "src": "982:160:26"
                }
              ]
            },
            "documentation": {
              "id": 6861,
              "nodeType": "StructuredDocumentation",
              "src": "762:56:26",
              "text": " @dev See {IERC165-supportsInterface}."
            },
            "functionSelector": "01ffc9a7",
            "id": 6888,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nameLocation": "832:17:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6868,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 6865,
                  "name": "ERC1155Core",
                  "nameLocations": [
                    "899:11:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19726,
                  "src": "899:11:26"
                },
                {
                  "id": 6866,
                  "name": "ERC1155CreatorCore",
                  "nameLocations": [
                    "912:18:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 13854,
                  "src": "912:18:26"
                },
                {
                  "id": 6867,
                  "name": "AdminControlUpgradeable",
                  "nameLocations": [
                    "932:23:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 371,
                  "src": "932:23:26"
                }
              ],
              "src": "890:66:26"
            },
            "parameters": {
              "id": 6864,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6863,
                  "mutability": "mutable",
                  "name": "interfaceId",
                  "nameLocation": "857:11:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6888,
                  "src": "850:18:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 6862,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "850:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "849:20:26"
            },
            "returnParameters": {
              "id": 6871,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6870,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6888,
                  "src": "966:4:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6869,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "966:4:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "965:6:26"
            },
            "scope": 8327,
            "src": "823:326:26",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              19550
            ],
            "body": {
              "id": 6913,
              "nodeType": "Block",
              "src": "1308:57:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6907,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6892,
                        "src": "1335:4:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6908,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6894,
                        "src": "1341:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6909,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6897,
                        "src": "1345:3:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 6910,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6900,
                        "src": "1350:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      ],
                      "id": 6906,
                      "name": "_approveTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13840,
                      "src": "1318:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,uint256[] memory,uint256[] memory)"
                      }
                    },
                    "id": 6911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1318:40:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6912,
                  "nodeType": "ExpressionStatement",
                  "src": "1318:40:26"
                }
              ]
            },
            "id": 6914,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeTokenTransfer",
            "nameLocation": "1164:20:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6904,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1299:8:26"
            },
            "parameters": {
              "id": 6903,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6890,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6914,
                  "src": "1185:7:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6889,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1185:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6892,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1202:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6914,
                  "src": "1194:12:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6891,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1194:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6894,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1216:2:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6914,
                  "src": "1208:10:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6893,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1208:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6897,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "1237:3:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6914,
                  "src": "1220:20:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6895,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1220:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6896,
                    "nodeType": "ArrayTypeName",
                    "src": "1220:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6900,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "1259:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6914,
                  "src": "1242:24:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6898,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1242:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6899,
                    "nodeType": "ArrayTypeName",
                    "src": "1242:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6902,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6914,
                  "src": "1268:12:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6901,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1268:5:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1184:97:26"
            },
            "returnParameters": {
              "id": 6905,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1308:0:26"
            },
            "scope": 8327,
            "src": "1155:210:26",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              14988
            ],
            "body": {
              "id": 6935,
              "nodeType": "Block",
              "src": "1540:102:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6926,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6917,
                        "src": "1570:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6925,
                      "name": "requireNonBlacklist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12566,
                      "src": "1550:19:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 6927,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1550:30:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6928,
                  "nodeType": "ExpressionStatement",
                  "src": "1550:30:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6930,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6917,
                        "src": "1609:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6931,
                        "name": "baseURI",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6919,
                        "src": "1620:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 6932,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1629:5:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6929,
                      "name": "_registerExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12664,
                      "src": "1590:18:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,string calldata,bool)"
                      }
                    },
                    "id": 6933,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1590:45:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6934,
                  "nodeType": "ExpressionStatement",
                  "src": "1590:45:26"
                }
              ]
            },
            "documentation": {
              "id": 6915,
              "nodeType": "StructuredDocumentation",
              "src": "1371:61:26",
              "text": " @dev See {ICreatorCore-registerExtension}."
            },
            "functionSelector": "3071a0f9",
            "id": 6936,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6923,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6922,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1526:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "1526:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "1526:13:26"
              }
            ],
            "name": "registerExtension",
            "nameLocation": "1446:17:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6921,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1517:8:26"
            },
            "parameters": {
              "id": 6920,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6917,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1472:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6936,
                  "src": "1464:17:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6916,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1464:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6919,
                  "mutability": "mutable",
                  "name": "baseURI",
                  "nameLocation": "1499:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6936,
                  "src": "1483:23:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6918,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1483:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1463:44:26"
            },
            "returnParameters": {
              "id": 6924,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1540:0:26"
            },
            "scope": 8327,
            "src": "1437:205:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              14998
            ],
            "body": {
              "id": 6959,
              "nodeType": "Block",
              "src": "1840:113:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6950,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6939,
                        "src": "1870:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6949,
                      "name": "requireNonBlacklist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12566,
                      "src": "1850:19:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 6951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1850:30:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6952,
                  "nodeType": "ExpressionStatement",
                  "src": "1850:30:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6954,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6939,
                        "src": "1909:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6955,
                        "name": "baseURI",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6941,
                        "src": "1920:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 6956,
                        "name": "baseURIIdentical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6943,
                        "src": "1929:16:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6953,
                      "name": "_registerExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12664,
                      "src": "1890:18:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,string calldata,bool)"
                      }
                    },
                    "id": 6957,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1890:56:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6958,
                  "nodeType": "ExpressionStatement",
                  "src": "1890:56:26"
                }
              ]
            },
            "documentation": {
              "id": 6937,
              "nodeType": "StructuredDocumentation",
              "src": "1648:61:26",
              "text": " @dev See {ICreatorCore-registerExtension}."
            },
            "functionSelector": "3f0f37f6",
            "id": 6960,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6947,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6946,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1826:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "1826:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "1826:13:26"
              }
            ],
            "name": "registerExtension",
            "nameLocation": "1723:17:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6945,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1817:8:26"
            },
            "parameters": {
              "id": 6944,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6939,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1749:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6960,
                  "src": "1741:17:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6938,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1741:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6941,
                  "mutability": "mutable",
                  "name": "baseURI",
                  "nameLocation": "1776:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6960,
                  "src": "1760:23:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6940,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1760:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6943,
                  "mutability": "mutable",
                  "name": "baseURIIdentical",
                  "nameLocation": "1790:16:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6960,
                  "src": "1785:21:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6942,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1785:4:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1740:67:26"
            },
            "returnParameters": {
              "id": 6948,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1840:0:26"
            },
            "scope": 8327,
            "src": "1714:239:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15004
            ],
            "body": {
              "id": 6973,
              "nodeType": "Block",
              "src": "2108:48:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6970,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6963,
                        "src": "2139:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6969,
                      "name": "_unregisterExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12708,
                      "src": "2118:20:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 6971,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2118:31:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6972,
                  "nodeType": "ExpressionStatement",
                  "src": "2118:31:26"
                }
              ]
            },
            "documentation": {
              "id": 6961,
              "nodeType": "StructuredDocumentation",
              "src": "1960:63:26",
              "text": " @dev See {ICreatorCore-unregisterExtension}."
            },
            "functionSelector": "ce8aee9d",
            "id": 6974,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6967,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6966,
                  "name": "adminRequired",
                  "nameLocations": [
                    "2094:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "2094:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "2094:13:26"
              }
            ],
            "name": "unregisterExtension",
            "nameLocation": "2037:19:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6965,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2085:8:26"
            },
            "parameters": {
              "id": 6964,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6963,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "2065:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6974,
                  "src": "2057:17:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6962,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2057:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2056:19:26"
            },
            "returnParameters": {
              "id": 6968,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2108:0:26"
            },
            "scope": 8327,
            "src": "2028:128:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15010
            ],
            "body": {
              "id": 6987,
              "nodeType": "Block",
              "src": "2308:47:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6984,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6977,
                        "src": "2338:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6983,
                      "name": "_blacklistExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12769,
                      "src": "2318:19:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 6985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2318:30:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6986,
                  "nodeType": "ExpressionStatement",
                  "src": "2318:30:26"
                }
              ]
            },
            "documentation": {
              "id": 6975,
              "nodeType": "StructuredDocumentation",
              "src": "2162:62:26",
              "text": " @dev See {ICreatorCore-blacklistExtension}."
            },
            "functionSelector": "02e7afb7",
            "id": 6988,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6981,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6980,
                  "name": "adminRequired",
                  "nameLocations": [
                    "2294:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "2294:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "2294:13:26"
              }
            ],
            "name": "blacklistExtension",
            "nameLocation": "2238:18:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6979,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2285:8:26"
            },
            "parameters": {
              "id": 6978,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6977,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "2265:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 6988,
                  "src": "2257:17:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6976,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2257:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2256:19:26"
            },
            "returnParameters": {
              "id": 6982,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2308:0:26"
            },
            "scope": 8327,
            "src": "2229:126:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15016
            ],
            "body": {
              "id": 7003,
              "nodeType": "Block",
              "src": "2508:83:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6995,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2518:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 6996,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2518:18:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6997,
                  "nodeType": "ExpressionStatement",
                  "src": "2518:18:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6999,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6991,
                        "src": "2572:4:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 7000,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2578:5:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6998,
                      "name": "_setBaseTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12792,
                      "src": "2546:25:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string calldata,bool)"
                      }
                    },
                    "id": 7001,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2546:38:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7002,
                  "nodeType": "ExpressionStatement",
                  "src": "2546:38:26"
                }
              ]
            },
            "documentation": {
              "id": 6989,
              "nodeType": "StructuredDocumentation",
              "src": "2361:68:26",
              "text": " @dev See {ICreatorCore-setBaseTokenURIExtension}."
            },
            "functionSelector": "3e6134b8",
            "id": 7004,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBaseTokenURIExtension",
            "nameLocation": "2443:24:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6993,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2499:8:26"
            },
            "parameters": {
              "id": 6992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6991,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "2484:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7004,
                  "src": "2468:20:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6990,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2468:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2467:22:26"
            },
            "returnParameters": {
              "id": 6994,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2508:0:26"
            },
            "scope": 8327,
            "src": "2434:157:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15024
            ],
            "body": {
              "id": 7021,
              "nodeType": "Block",
              "src": "2760:87:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 7013,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2770:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 7014,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2770:18:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7015,
                  "nodeType": "ExpressionStatement",
                  "src": "2770:18:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7017,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7007,
                        "src": "2824:4:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 7018,
                        "name": "identical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7009,
                        "src": "2830:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7016,
                      "name": "_setBaseTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12792,
                      "src": "2798:25:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string calldata,bool)"
                      }
                    },
                    "id": 7019,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2798:42:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7020,
                  "nodeType": "ExpressionStatement",
                  "src": "2798:42:26"
                }
              ]
            },
            "documentation": {
              "id": 7005,
              "nodeType": "StructuredDocumentation",
              "src": "2597:68:26",
              "text": " @dev See {ICreatorCore-setBaseTokenURIExtension}."
            },
            "functionSelector": "82dcc0c8",
            "id": 7022,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBaseTokenURIExtension",
            "nameLocation": "2679:24:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7011,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2751:8:26"
            },
            "parameters": {
              "id": 7010,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7007,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "2720:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7022,
                  "src": "2704:20:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7006,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2704:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7009,
                  "mutability": "mutable",
                  "name": "identical",
                  "nameLocation": "2731:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7022,
                  "src": "2726:14:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7008,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2726:4:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2703:38:26"
            },
            "returnParameters": {
              "id": 7012,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2760:0:26"
            },
            "scope": 8327,
            "src": "2670:177:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15030
            ],
            "body": {
              "id": 7036,
              "nodeType": "Block",
              "src": "3006:80:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 7029,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3016:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 7030,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3016:18:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7031,
                  "nodeType": "ExpressionStatement",
                  "src": "3016:18:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7033,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7025,
                        "src": "3072:6:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 7032,
                      "name": "_setTokenURIPrefixExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12806,
                      "src": "3044:27:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 7034,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3044:35:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7035,
                  "nodeType": "ExpressionStatement",
                  "src": "3044:35:26"
                }
              ]
            },
            "documentation": {
              "id": 7023,
              "nodeType": "StructuredDocumentation",
              "src": "2853:70:26",
              "text": " @dev See {ICreatorCore-setTokenURIPrefixExtension}."
            },
            "functionSelector": "66d1e9d0",
            "id": 7037,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIPrefixExtension",
            "nameLocation": "2937:26:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7027,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2997:8:26"
            },
            "parameters": {
              "id": 7026,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7025,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "2980:6:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7037,
                  "src": "2964:22:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7024,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2964:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2963:24:26"
            },
            "returnParameters": {
              "id": 7028,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3006:0:26"
            },
            "scope": 8327,
            "src": "2928:158:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15038
            ],
            "body": {
              "id": 7054,
              "nodeType": "Block",
              "src": "3248:81:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 7046,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3258:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 7047,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3258:18:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7048,
                  "nodeType": "ExpressionStatement",
                  "src": "3258:18:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7050,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7040,
                        "src": "3308:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 7051,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7042,
                        "src": "3317:4:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 7049,
                      "name": "_setTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12831,
                      "src": "3286:21:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,string calldata)"
                      }
                    },
                    "id": 7052,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3286:36:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7053,
                  "nodeType": "ExpressionStatement",
                  "src": "3286:36:26"
                }
              ]
            },
            "documentation": {
              "id": 7038,
              "nodeType": "StructuredDocumentation",
              "src": "3092:64:26",
              "text": " @dev See {ICreatorCore-setTokenURIExtension}."
            },
            "functionSelector": "e92a89f6",
            "id": 7055,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIExtension",
            "nameLocation": "3170:20:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7044,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3239:8:26"
            },
            "parameters": {
              "id": 7043,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7040,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "3199:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7055,
                  "src": "3191:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7039,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3191:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7042,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "3224:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7055,
                  "src": "3208:20:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7041,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3208:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3190:39:26"
            },
            "returnParameters": {
              "id": 7045,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3248:0:26"
            },
            "scope": 8327,
            "src": "3161:168:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15048
            ],
            "body": {
              "id": 7100,
              "nodeType": "Block",
              "src": "3505:244:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 7066,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3515:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 7067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3515:18:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7068,
                  "nodeType": "ExpressionStatement",
                  "src": "3515:18:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7074,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 7070,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7059,
                            "src": "3551:8:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 7071,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3560:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3551:15:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 7072,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7062,
                            "src": "3570:4:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 7073,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3575:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3570:11:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3551:30:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 7075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3583:15:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        },
                        "value": "Invalid input"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        }
                      ],
                      "id": 7069,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "3543:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7076,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3543:56:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7077,
                  "nodeType": "ExpressionStatement",
                  "src": "3543:56:26"
                },
                {
                  "body": {
                    "id": 7098,
                    "nodeType": "Block",
                    "src": "3644:99:26",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 7086,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7059,
                                "src": "3680:8:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 7088,
                              "indexExpression": {
                                "id": 7087,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7079,
                                "src": "3689:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3680:11:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 7089,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7062,
                                "src": "3693:4:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 7091,
                              "indexExpression": {
                                "id": 7090,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7079,
                                "src": "3698:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3693:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 7085,
                            "name": "_setTokenURIExtension",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12831,
                            "src": "3658:21:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                              "typeString": "function (uint256,string calldata)"
                            }
                          },
                          "id": 7092,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3658:43:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7093,
                        "nodeType": "ExpressionStatement",
                        "src": "3658:43:26"
                      },
                      {
                        "id": 7097,
                        "nodeType": "UncheckedBlock",
                        "src": "3715:18:26",
                        "statements": [
                          {
                            "expression": {
                              "id": 7095,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "3727:3:26",
                              "subExpression": {
                                "id": 7094,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7079,
                                "src": "3729:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 7096,
                            "nodeType": "ExpressionStatement",
                            "src": "3727:3:26"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7084,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7081,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7079,
                      "src": "3622:1:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 7082,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7059,
                        "src": "3626:8:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 7083,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3635:6:26",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "3626:15:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3622:19:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7099,
                  "initializationExpression": {
                    "assignments": [
                      7079
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7079,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3619:1:26",
                        "nodeType": "VariableDeclaration",
                        "scope": 7099,
                        "src": "3614:6:26",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7078,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "3614:4:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 7080,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3614:6:26"
                  },
                  "nodeType": "ForStatement",
                  "src": "3609:134:26"
                }
              ]
            },
            "documentation": {
              "id": 7056,
              "nodeType": "StructuredDocumentation",
              "src": "3335:64:26",
              "text": " @dev See {ICreatorCore-setTokenURIExtension}."
            },
            "functionSelector": "61e5bc6b",
            "id": 7101,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIExtension",
            "nameLocation": "3413:20:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7064,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3496:8:26"
            },
            "parameters": {
              "id": 7063,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7059,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "3453:8:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7101,
                  "src": "3434:27:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7057,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3434:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7058,
                    "nodeType": "ArrayTypeName",
                    "src": "3434:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7062,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "3481:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7101,
                  "src": "3463:22:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7060,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "3463:6:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 7061,
                    "nodeType": "ArrayTypeName",
                    "src": "3463:8:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3433:53:26"
            },
            "returnParameters": {
              "id": 7065,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3505:0:26"
            },
            "scope": 8327,
            "src": "3404:345:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15054
            ],
            "body": {
              "id": 7114,
              "nodeType": "Block",
              "src": "3898:39:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7111,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7104,
                        "src": "3925:4:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 7110,
                      "name": "_setBaseTokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12847,
                      "src": "3908:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 7112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3908:22:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7113,
                  "nodeType": "ExpressionStatement",
                  "src": "3908:22:26"
                }
              ]
            },
            "documentation": {
              "id": 7102,
              "nodeType": "StructuredDocumentation",
              "src": "3755:59:26",
              "text": " @dev See {ICreatorCore-setBaseTokenURI}."
            },
            "functionSelector": "30176e13",
            "id": 7115,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7108,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7107,
                  "name": "adminRequired",
                  "nameLocations": [
                    "3884:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "3884:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "3884:13:26"
              }
            ],
            "name": "setBaseTokenURI",
            "nameLocation": "3828:15:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7106,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3875:8:26"
            },
            "parameters": {
              "id": 7105,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7104,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "3860:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7115,
                  "src": "3844:20:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7103,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3844:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3843:22:26"
            },
            "returnParameters": {
              "id": 7109,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3898:0:26"
            },
            "scope": 8327,
            "src": "3819:118:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15060
            ],
            "body": {
              "id": 7128,
              "nodeType": "Block",
              "src": "4092:43:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7125,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7118,
                        "src": "4121:6:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 7124,
                      "name": "_setTokenURIPrefix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12863,
                      "src": "4102:18:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 7126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4102:26:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7127,
                  "nodeType": "ExpressionStatement",
                  "src": "4102:26:26"
                }
              ]
            },
            "documentation": {
              "id": 7116,
              "nodeType": "StructuredDocumentation",
              "src": "3943:61:26",
              "text": " @dev See {ICreatorCore-setTokenURIPrefix}."
            },
            "functionSelector": "99e0dd7c",
            "id": 7129,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7122,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7121,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4078:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4078:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "4078:13:26"
              }
            ],
            "name": "setTokenURIPrefix",
            "nameLocation": "4018:17:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7120,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4069:8:26"
            },
            "parameters": {
              "id": 7119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7118,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "4052:6:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7129,
                  "src": "4036:22:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7117,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4036:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4035:24:26"
            },
            "returnParameters": {
              "id": 7123,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4092:0:26"
            },
            "scope": 8327,
            "src": "4009:126:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15068
            ],
            "body": {
              "id": 7145,
              "nodeType": "Block",
              "src": "4293:44:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7141,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7132,
                        "src": "4316:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 7142,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7134,
                        "src": "4325:4:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 7140,
                      "name": "_setTokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12898,
                      "src": "4303:12:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,string calldata)"
                      }
                    },
                    "id": 7143,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4303:27:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7144,
                  "nodeType": "ExpressionStatement",
                  "src": "4303:27:26"
                }
              ]
            },
            "documentation": {
              "id": 7130,
              "nodeType": "StructuredDocumentation",
              "src": "4141:55:26",
              "text": " @dev See {ICreatorCore-setTokenURI}."
            },
            "functionSelector": "162094c4",
            "id": 7146,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7138,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7137,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4279:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4279:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "4279:13:26"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "4210:11:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7136,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4270:8:26"
            },
            "parameters": {
              "id": 7135,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7132,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "4230:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7146,
                  "src": "4222:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7131,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4222:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7134,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "4255:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7146,
                  "src": "4239:20:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7133,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4239:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4221:39:26"
            },
            "returnParameters": {
              "id": 7139,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4293:0:26"
            },
            "scope": 8327,
            "src": "4201:136:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15078
            ],
            "body": {
              "id": 7190,
              "nodeType": "Block",
              "src": "4509:207:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7164,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 7160,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7150,
                            "src": "4527:8:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 7161,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4536:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4527:15:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 7162,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7153,
                            "src": "4546:4:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 7163,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4551:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4546:11:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4527:30:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 7165,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4559:15:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        },
                        "value": "Invalid input"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        }
                      ],
                      "id": 7159,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "4519:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4519:56:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7167,
                  "nodeType": "ExpressionStatement",
                  "src": "4519:56:26"
                },
                {
                  "body": {
                    "id": 7188,
                    "nodeType": "Block",
                    "src": "4620:90:26",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 7176,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7150,
                                "src": "4647:8:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 7178,
                              "indexExpression": {
                                "id": 7177,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7169,
                                "src": "4656:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4647:11:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 7179,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7153,
                                "src": "4660:4:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 7181,
                              "indexExpression": {
                                "id": 7180,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7169,
                                "src": "4665:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4660:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 7175,
                            "name": "_setTokenURI",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12898,
                            "src": "4634:12:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                              "typeString": "function (uint256,string calldata)"
                            }
                          },
                          "id": 7182,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4634:34:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7183,
                        "nodeType": "ExpressionStatement",
                        "src": "4634:34:26"
                      },
                      {
                        "id": 7187,
                        "nodeType": "UncheckedBlock",
                        "src": "4682:18:26",
                        "statements": [
                          {
                            "expression": {
                              "id": 7185,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "4694:3:26",
                              "subExpression": {
                                "id": 7184,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7169,
                                "src": "4696:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 7186,
                            "nodeType": "ExpressionStatement",
                            "src": "4694:3:26"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7174,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7171,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7169,
                      "src": "4598:1:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 7172,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7150,
                        "src": "4602:8:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 7173,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4611:6:26",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "4602:15:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4598:19:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7189,
                  "initializationExpression": {
                    "assignments": [
                      7169
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7169,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "4595:1:26",
                        "nodeType": "VariableDeclaration",
                        "scope": 7189,
                        "src": "4590:6:26",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7168,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "4590:4:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 7170,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4590:6:26"
                  },
                  "nodeType": "ForStatement",
                  "src": "4585:125:26"
                }
              ]
            },
            "documentation": {
              "id": 7147,
              "nodeType": "StructuredDocumentation",
              "src": "4343:55:26",
              "text": " @dev See {ICreatorCore-setTokenURI}."
            },
            "functionSelector": "aafb2d44",
            "id": 7191,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7157,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7156,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4495:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4495:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "4495:13:26"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "4412:11:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7155,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4486:8:26"
            },
            "parameters": {
              "id": 7154,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7150,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "4443:8:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7191,
                  "src": "4424:27:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7148,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4424:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7149,
                    "nodeType": "ArrayTypeName",
                    "src": "4424:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7153,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "4471:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7191,
                  "src": "4453:22:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7151,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "4453:6:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 7152,
                    "nodeType": "ArrayTypeName",
                    "src": "4453:8:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4423:53:26"
            },
            "returnParameters": {
              "id": 7158,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4509:0:26"
            },
            "scope": 8327,
            "src": "4403:313:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15086
            ],
            "body": {
              "id": 7207,
              "nodeType": "Block",
              "src": "4889:60:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7203,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7194,
                        "src": "4919:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 7204,
                        "name": "permissions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7196,
                        "src": "4930:11:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 7202,
                      "name": "_setMintPermissions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13616,
                      "src": "4899:19:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address)"
                      }
                    },
                    "id": 7205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4899:43:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7206,
                  "nodeType": "ExpressionStatement",
                  "src": "4899:43:26"
                }
              ]
            },
            "documentation": {
              "id": 7192,
              "nodeType": "StructuredDocumentation",
              "src": "4722:62:26",
              "text": " @dev See {ICreatorCore-setMintPermissions}."
            },
            "functionSelector": "f0cdc499",
            "id": 7208,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7200,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7199,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4875:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4875:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "4875:13:26"
              }
            ],
            "name": "setMintPermissions",
            "nameLocation": "4798:18:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7198,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4866:8:26"
            },
            "parameters": {
              "id": 7197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7194,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "4825:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7208,
                  "src": "4817:17:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7193,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4817:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7196,
                  "mutability": "mutable",
                  "name": "permissions",
                  "nameLocation": "4844:11:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7208,
                  "src": "4836:19:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7195,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4836:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4816:40:26"
            },
            "returnParameters": {
              "id": 7201,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4889:0:26"
            },
            "scope": 8327,
            "src": "4789:160:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15219
            ],
            "body": {
              "id": 7239,
              "nodeType": "Block",
              "src": "5195:63:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 7232,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5229:1:26",
                            "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": 7231,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5221:7:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 7230,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "5221:7:26",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7233,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5221:10:26",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 7234,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7212,
                        "src": "5233:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 7235,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7215,
                        "src": "5237:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 7236,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7218,
                        "src": "5246:4:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "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"
                        }
                      ],
                      "id": 7229,
                      "name": "_mintNew",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7667,
                      "src": "5212:8:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,string calldata[] calldata) returns (uint256[] memory)"
                      }
                    },
                    "id": 7237,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5212:39:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 7228,
                  "id": 7238,
                  "nodeType": "Return",
                  "src": "5205:46:26"
                }
              ]
            },
            "documentation": {
              "id": 7209,
              "nodeType": "StructuredDocumentation",
              "src": "4955:62:26",
              "text": " @dev See {IERC1155CreatorCore-mintBaseNew}."
            },
            "functionSelector": "feeb5a9a",
            "id": 7240,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7222,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7221,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5142:12:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5142:12:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "5142:12:26"
              },
              {
                "id": 7224,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7223,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5155:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "5155:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "5155:13:26"
              }
            ],
            "name": "mintBaseNew",
            "nameLocation": "5031:11:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7220,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5133:8:26"
            },
            "parameters": {
              "id": 7219,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7212,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5062:2:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7240,
                  "src": "5043:21:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7210,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5043:7:26",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 7211,
                    "nodeType": "ArrayTypeName",
                    "src": "5043:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7215,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "5085:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7240,
                  "src": "5066:26:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7213,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5066:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7214,
                    "nodeType": "ArrayTypeName",
                    "src": "5066:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7218,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "5112:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7240,
                  "src": "5094:22:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7216,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "5094:6:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 7217,
                    "nodeType": "ArrayTypeName",
                    "src": "5094:8:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5042:75:26"
            },
            "returnParameters": {
              "id": 7228,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7227,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7240,
                  "src": "5177:16:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7225,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5177:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7226,
                    "nodeType": "ArrayTypeName",
                    "src": "5177:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5176:18:26"
            },
            "scope": 8327,
            "src": "5022:236:26",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15232
            ],
            "body": {
              "id": 7310,
              "nodeType": "Block",
              "src": "5493:362:26",
              "statements": [
                {
                  "body": {
                    "id": 7298,
                    "nodeType": "Block",
                    "src": "5538:253:26",
                    "statements": [
                      {
                        "assignments": [
                          7266
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7266,
                            "mutability": "mutable",
                            "name": "tokenId",
                            "nameLocation": "5560:7:26",
                            "nodeType": "VariableDeclaration",
                            "scope": 7298,
                            "src": "5552:15:26",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 7265,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "5552:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 7270,
                        "initialValue": {
                          "baseExpression": {
                            "id": 7267,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7247,
                            "src": "5570:8:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 7269,
                          "indexExpression": {
                            "id": 7268,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7259,
                            "src": "5579:1:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5570:11:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5552:29:26"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 7278,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 7274,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 7272,
                                  "name": "tokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7266,
                                  "src": "5603:7:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 7273,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5613:1:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "5603:11:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 7277,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 7275,
                                  "name": "tokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7266,
                                  "src": "5618:7:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "id": 7276,
                                  "name": "_tokenCount",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12432,
                                  "src": "5629:11:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5618:22:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "5603:37:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "496e76616c696420746f6b656e",
                              "id": 7279,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5642:15:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6",
                                "typeString": "literal_string \"Invalid token\""
                              },
                              "value": "Invalid token"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6",
                                "typeString": "literal_string \"Invalid token\""
                              }
                            ],
                            "id": 7271,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "5595:7:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 7280,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5595:63:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7281,
                        "nodeType": "ExpressionStatement",
                        "src": "5595:63:26"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 7290,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "id": 7284,
                                    "name": "tokenId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7266,
                                    "src": "5696:7:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 7283,
                                  "name": "_tokenExtension",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    13853
                                  ],
                                  "referencedDeclaration": 13853,
                                  "src": "5680:15:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                                    "typeString": "function (uint256) view returns (address)"
                                  }
                                },
                                "id": 7285,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5680:24:26",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "hexValue": "30",
                                    "id": 7288,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5716:1:26",
                                    "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": 7287,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5708:7:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 7286,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5708:7:26",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 7289,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5708:10:26",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "5680:38:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "546f6b656e206372656174656420627920657874656e73696f6e",
                              "id": 7291,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5720:28:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb",
                                "typeString": "literal_string \"Token created by extension\""
                              },
                              "value": "Token created by extension"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb",
                                "typeString": "literal_string \"Token created by extension\""
                              }
                            ],
                            "id": 7282,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "5672:7:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 7292,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5672:77:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7293,
                        "nodeType": "ExpressionStatement",
                        "src": "5672:77:26"
                      },
                      {
                        "id": 7297,
                        "nodeType": "UncheckedBlock",
                        "src": "5763:18:26",
                        "statements": [
                          {
                            "expression": {
                              "id": 7295,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "5775:3:26",
                              "subExpression": {
                                "id": 7294,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7259,
                                "src": "5777:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 7296,
                            "nodeType": "ExpressionStatement",
                            "src": "5775:3:26"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7264,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7261,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7259,
                      "src": "5516:1:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 7262,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7247,
                        "src": "5520:8:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 7263,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5529:6:26",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5520:15:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5516:19:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7299,
                  "initializationExpression": {
                    "assignments": [
                      7259
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7259,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "5513:1:26",
                        "nodeType": "VariableDeclaration",
                        "scope": 7299,
                        "src": "5508:6:26",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7258,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5508:4:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 7260,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5508:6:26"
                  },
                  "nodeType": "ForStatement",
                  "src": "5503:288:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 7303,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5822:1:26",
                            "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": 7302,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5814:7:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 7301,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "5814:7:26",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7304,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5814:10:26",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 7305,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7244,
                        "src": "5826:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 7306,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7247,
                        "src": "5830:8:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 7307,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7250,
                        "src": "5840:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "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_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 7300,
                      "name": "_mintExisting",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7881,
                      "src": "5800:13:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 7308,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5800:48:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7309,
                  "nodeType": "ExpressionStatement",
                  "src": "5800:48:26"
                }
              ]
            },
            "documentation": {
              "id": 7241,
              "nodeType": "StructuredDocumentation",
              "src": "5264:67:26",
              "text": " @dev See {IERC1155CreatorCore-mintBaseExisting}."
            },
            "functionSelector": "695c96e6",
            "id": 7311,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7254,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7253,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5466:12:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5466:12:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "5466:12:26"
              },
              {
                "id": 7256,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7255,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5479:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "5479:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "5479:13:26"
              }
            ],
            "name": "mintBaseExisting",
            "nameLocation": "5345:16:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7252,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5457:8:26"
            },
            "parameters": {
              "id": 7251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7244,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5381:2:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7311,
                  "src": "5362:21:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7242,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5362:7:26",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 7243,
                    "nodeType": "ArrayTypeName",
                    "src": "5362:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7247,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "5404:8:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7311,
                  "src": "5385:27:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7245,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5385:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7246,
                    "nodeType": "ArrayTypeName",
                    "src": "5385:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7250,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "5433:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7311,
                  "src": "5414:26:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7248,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5414:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7249,
                    "nodeType": "ArrayTypeName",
                    "src": "5414:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5361:80:26"
            },
            "returnParameters": {
              "id": 7257,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5493:0:26"
            },
            "scope": 8327,
            "src": "5336:519:26",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15248
            ],
            "body": {
              "id": 7341,
              "nodeType": "Block",
              "src": "6106:91:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 7330,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "6116:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 7331,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6116:18:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7332,
                  "nodeType": "ExpressionStatement",
                  "src": "6116:18:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7334,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "6160:3:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7335,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6164:6:26",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "6160:10:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 7336,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7315,
                        "src": "6172:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 7337,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7318,
                        "src": "6176:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 7338,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7321,
                        "src": "6185:4:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "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"
                        }
                      ],
                      "id": 7333,
                      "name": "_mintNew",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7667,
                      "src": "6151:8:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,string calldata[] calldata) returns (uint256[] memory)"
                      }
                    },
                    "id": 7339,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6151:39:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 7329,
                  "id": 7340,
                  "nodeType": "Return",
                  "src": "6144:46:26"
                }
              ]
            },
            "documentation": {
              "id": 7312,
              "nodeType": "StructuredDocumentation",
              "src": "5861:67:26",
              "text": " @dev See {IERC1155CreatorCore-mintExtensionNew}."
            },
            "functionSelector": "8c6e8472",
            "id": 7342,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7325,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7324,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "6058:12:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "6058:12:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "6058:12:26"
              }
            ],
            "name": "mintExtensionNew",
            "nameLocation": "5942:16:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7323,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6049:8:26"
            },
            "parameters": {
              "id": 7322,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7315,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5978:2:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7342,
                  "src": "5959:21:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7313,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5959:7:26",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 7314,
                    "nodeType": "ArrayTypeName",
                    "src": "5959:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7318,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "6001:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7342,
                  "src": "5982:26:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7316,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5982:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7317,
                    "nodeType": "ArrayTypeName",
                    "src": "5982:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7321,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "6028:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7342,
                  "src": "6010:22:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7319,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "6010:6:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 7320,
                    "nodeType": "ArrayTypeName",
                    "src": "6010:8:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5958:75:26"
            },
            "returnParameters": {
              "id": 7329,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7328,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "6096:8:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7342,
                  "src": "6079:25:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7326,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6079:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7327,
                    "nodeType": "ArrayTypeName",
                    "src": "6079:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6078:27:26"
            },
            "scope": 8327,
            "src": "5933:264:26",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15261
            ],
            "body": {
              "id": 7397,
              "nodeType": "Block",
              "src": "6428:292:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 7358,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "6438:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 7359,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6438:18:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7360,
                  "nodeType": "ExpressionStatement",
                  "src": "6438:18:26"
                },
                {
                  "body": {
                    "id": 7387,
                    "nodeType": "Block",
                    "src": "6501:155:26",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 7379,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 7370,
                                      "name": "tokenIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7349,
                                      "src": "6539:8:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 7372,
                                    "indexExpression": {
                                      "id": 7371,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7362,
                                      "src": "6548:1:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "6539:11:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 7369,
                                  "name": "_tokenExtension",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    13853
                                  ],
                                  "referencedDeclaration": 13853,
                                  "src": "6523:15:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                                    "typeString": "function (uint256) view returns (address)"
                                  }
                                },
                                "id": 7373,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6523:28:26",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 7376,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967281,
                                      "src": "6563:3:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 7377,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "6567:6:26",
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "src": "6563:10:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 7375,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6555:7:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 7374,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6555:7:26",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 7378,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6555:19:26",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "6523:51:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "546f6b656e206e6f742063726561746564206279207468697320657874656e73696f6e",
                              "id": 7380,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6576:37:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2",
                                "typeString": "literal_string \"Token not created by this extension\""
                              },
                              "value": "Token not created by this extension"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2",
                                "typeString": "literal_string \"Token not created by this extension\""
                              }
                            ],
                            "id": 7368,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "6515:7:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 7381,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6515:99:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7382,
                        "nodeType": "ExpressionStatement",
                        "src": "6515:99:26"
                      },
                      {
                        "id": 7386,
                        "nodeType": "UncheckedBlock",
                        "src": "6628:18:26",
                        "statements": [
                          {
                            "expression": {
                              "id": 7384,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "6640:3:26",
                              "subExpression": {
                                "id": 7383,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7362,
                                "src": "6642:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 7385,
                            "nodeType": "ExpressionStatement",
                            "src": "6640:3:26"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7367,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7364,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7362,
                      "src": "6479:1:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 7365,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7349,
                        "src": "6483:8:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 7366,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6492:6:26",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6483:15:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6479:19:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7388,
                  "initializationExpression": {
                    "assignments": [
                      7362
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7362,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "6476:1:26",
                        "nodeType": "VariableDeclaration",
                        "scope": 7388,
                        "src": "6471:6:26",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7361,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "6471:4:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 7363,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6471:6:26"
                  },
                  "nodeType": "ForStatement",
                  "src": "6466:190:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7390,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "6679:3:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7391,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6683:6:26",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "6679:10:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 7392,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7346,
                        "src": "6691:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 7393,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7349,
                        "src": "6695:8:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 7394,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7352,
                        "src": "6705:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "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_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 7389,
                      "name": "_mintExisting",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7881,
                      "src": "6665:13:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 7395,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6665:48:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7396,
                  "nodeType": "ExpressionStatement",
                  "src": "6665:48:26"
                }
              ]
            },
            "documentation": {
              "id": 7343,
              "nodeType": "StructuredDocumentation",
              "src": "6203:72:26",
              "text": " @dev See {IERC1155CreatorCore-mintExtensionExisting}."
            },
            "functionSelector": "e6c884dc",
            "id": 7398,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7356,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7355,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "6415:12:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "6415:12:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "6415:12:26"
              }
            ],
            "name": "mintExtensionExisting",
            "nameLocation": "6289:21:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7354,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6406:8:26"
            },
            "parameters": {
              "id": 7353,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7346,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6330:2:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7398,
                  "src": "6311:21:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7344,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6311:7:26",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 7345,
                    "nodeType": "ArrayTypeName",
                    "src": "6311:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7349,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "6353:8:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7398,
                  "src": "6334:27:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7347,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6334:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7348,
                    "nodeType": "ArrayTypeName",
                    "src": "6334:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7352,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "6382:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7398,
                  "src": "6363:26:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7350,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6363:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7351,
                    "nodeType": "ArrayTypeName",
                    "src": "6363:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6310:80:26"
            },
            "returnParameters": {
              "id": 7357,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6428:0:26"
            },
            "scope": 8327,
            "src": "6280:440:26",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7666,
              "nodeType": "Block",
              "src": "6926:1980:26",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7419,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 7416,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7404,
                        "src": "6940:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      "id": 7417,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6943:6:26",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6940:9:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 7418,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6952:1:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "6940:13:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 7472,
                    "nodeType": "Block",
                    "src": "7199:214:26",
                    "statements": [
                      {
                        "expression": {
                          "id": 7456,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 7449,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7414,
                            "src": "7273:8:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 7453,
                                  "name": "amounts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7407,
                                  "src": "7298:7:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 7454,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "7306:6:26",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "7298:14:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7452,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "7284:13:26",
                              "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": 7450,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7288:7:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 7451,
                                "nodeType": "ArrayTypeName",
                                "src": "7288:9:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                  "typeString": "uint256[]"
                                }
                              }
                            },
                            "id": 7455,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7284:29:26",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "src": "7273:40:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 7457,
                        "nodeType": "ExpressionStatement",
                        "src": "7273:40:26"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 7468,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 7462,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 7459,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7410,
                                    "src": "7335:4:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 7460,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7340:6:26",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7335:11:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 7461,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7350:1:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "7335:16:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "||",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 7467,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 7463,
                                    "name": "amounts",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7407,
                                    "src": "7355:7:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                      "typeString": "uint256[] calldata"
                                    }
                                  },
                                  "id": 7464,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7363:6:26",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7355:14:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "expression": {
                                    "id": 7465,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7410,
                                    "src": "7373:4:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 7466,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7378:6:26",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7373:11:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7355:29:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "7335:49:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "496e76616c696420696e707574",
                              "id": 7469,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7386:15:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                "typeString": "literal_string \"Invalid input\""
                              },
                              "value": "Invalid input"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                "typeString": "literal_string \"Invalid input\""
                              }
                            ],
                            "id": 7458,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "7327:7:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 7470,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7327:75:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7471,
                        "nodeType": "ExpressionStatement",
                        "src": "7327:75:26"
                      }
                    ]
                  },
                  "id": 7473,
                  "nodeType": "IfStatement",
                  "src": "6936:477:26",
                  "trueBody": {
                    "id": 7448,
                    "nodeType": "Block",
                    "src": "6955:238:26",
                    "statements": [
                      {
                        "expression": {
                          "id": 7426,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 7420,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7414,
                            "src": "7043:8:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "hexValue": "31",
                                "id": 7424,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7068:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "id": 7423,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "7054:13:26",
                              "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": 7421,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7058:7:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 7422,
                                "nodeType": "ArrayTypeName",
                                "src": "7058:9:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                  "typeString": "uint256[]"
                                }
                              }
                            },
                            "id": 7425,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7054:16:26",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "src": "7043:27:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 7427,
                        "nodeType": "ExpressionStatement",
                        "src": "7043:27:26"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 7444,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 7432,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 7429,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7410,
                                    "src": "7092:4:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 7430,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7097:6:26",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7092:11:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "hexValue": "31",
                                  "id": 7431,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7107:1:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "7092:16:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "components": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "id": 7442,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 7436,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 7433,
                                          "name": "amounts",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7407,
                                          "src": "7113:7:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 7434,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "7121:6:26",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "7113:14:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "==",
                                      "rightExpression": {
                                        "hexValue": "31",
                                        "id": 7435,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7131:1:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "7113:19:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "||",
                                    "rightExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 7441,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 7437,
                                          "name": "to",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7404,
                                          "src": "7136:2:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 7438,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "7139:6:26",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "7136:9:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "==",
                                      "rightExpression": {
                                        "expression": {
                                          "id": 7439,
                                          "name": "amounts",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7407,
                                          "src": "7149:7:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 7440,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "7157:6:26",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "7149:14:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "7136:27:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "src": "7113:50:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  }
                                ],
                                "id": 7443,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "7112:52:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "7092:72:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "496e76616c696420696e707574",
                              "id": 7445,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7166:15:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                "typeString": "literal_string \"Invalid input\""
                              },
                              "value": "Invalid input"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                "typeString": "literal_string \"Invalid input\""
                              }
                            ],
                            "id": 7428,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "7084:7:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 7446,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7084:98:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7447,
                        "nodeType": "ExpressionStatement",
                        "src": "7084:98:26"
                      }
                    ]
                  }
                },
                {
                  "body": {
                    "id": 7500,
                    "nodeType": "Block",
                    "src": "7485:220:26",
                    "statements": [
                      {
                        "expression": {
                          "id": 7482,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": true,
                          "src": "7499:13:26",
                          "subExpression": {
                            "id": 7481,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "7501:11:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7483,
                        "nodeType": "ExpressionStatement",
                        "src": "7499:13:26"
                      },
                      {
                        "expression": {
                          "id": 7488,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 7484,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7414,
                              "src": "7526:8:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 7486,
                            "indexExpression": {
                              "id": 7485,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7475,
                              "src": "7535:1:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7526:11:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 7487,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "7540:11:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7526:25:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7489,
                        "nodeType": "ExpressionStatement",
                        "src": "7526:25:26"
                      },
                      {
                        "expression": {
                          "id": 7494,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 7490,
                              "name": "_tokensExtension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13505,
                              "src": "7622:16:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                                "typeString": "mapping(uint256 => address)"
                              }
                            },
                            "id": 7492,
                            "indexExpression": {
                              "id": 7491,
                              "name": "_tokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12432,
                              "src": "7639:11:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7622:29:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 7493,
                            "name": "extension",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7401,
                            "src": "7654:9:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "7622:41:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 7495,
                        "nodeType": "ExpressionStatement",
                        "src": "7622:41:26"
                      },
                      {
                        "id": 7499,
                        "nodeType": "UncheckedBlock",
                        "src": "7677:18:26",
                        "statements": [
                          {
                            "expression": {
                              "id": 7497,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "7689:3:26",
                              "subExpression": {
                                "id": 7496,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7475,
                                "src": "7691:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 7498,
                            "nodeType": "ExpressionStatement",
                            "src": "7689:3:26"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7477,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7475,
                      "src": "7463:1:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 7478,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7414,
                        "src": "7467:8:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 7479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7476:6:26",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "7467:15:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7463:19:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7501,
                  "initializationExpression": {
                    "assignments": [
                      7475
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7475,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "7460:1:26",
                        "nodeType": "VariableDeclaration",
                        "scope": 7501,
                        "src": "7455:6:26",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7474,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7455:4:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 7476,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7455:6:26"
                  },
                  "nodeType": "ForStatement",
                  "src": "7450:255:26"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 7507,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7502,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7401,
                      "src": "7719:9:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 7505,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7740:1:26",
                          "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": 7504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7732:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 7503,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7732:7:26",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 7506,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7732:10:26",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "7719:23:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7515,
                  "nodeType": "IfStatement",
                  "src": "7715:98:26",
                  "trueBody": {
                    "id": 7514,
                    "nodeType": "Block",
                    "src": "7744:69:26",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 7509,
                              "name": "to",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7404,
                              "src": "7780:2:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              }
                            },
                            {
                              "id": 7510,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7414,
                              "src": "7784:8:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            {
                              "id": 7511,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7407,
                              "src": "7794:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            ],
                            "id": 7508,
                            "name": "_checkMintPermissions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13655,
                            "src": "7758:21:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (address[] memory,uint256[] memory,uint256[] memory)"
                            }
                          },
                          "id": 7512,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7758:44:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7513,
                        "nodeType": "ExpressionStatement",
                        "src": "7758:44:26"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 7524,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 7519,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 7516,
                          "name": "to",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7404,
                          "src": "7827:2:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                            "typeString": "address[] calldata"
                          }
                        },
                        "id": 7517,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7830:6:26",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "7827:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 7518,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7840:1:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "7827:14:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 7523,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 7520,
                          "name": "tokenIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7414,
                          "src": "7845:8:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 7521,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7854:6:26",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "7845:15:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 7522,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7864:1:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "7845:20:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "7827:38:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 7545,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 7542,
                          "name": "to",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7404,
                          "src": "7978:2:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                            "typeString": "address[] calldata"
                          }
                        },
                        "id": 7543,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7981:6:26",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "7978:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 7544,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7990:1:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "7978:13:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 7624,
                      "nodeType": "Block",
                      "src": "8609:75:26",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 7613,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7404,
                                  "src": "8634:2:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 7615,
                                "indexExpression": {
                                  "hexValue": "30",
                                  "id": 7614,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8637:1:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8634:5:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "id": 7616,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7414,
                                "src": "8641:8:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              {
                                "id": 7617,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7407,
                                "src": "8651:7:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "hexValue": "30",
                                    "id": 7620,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8670:1:26",
                                    "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": 7619,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "NewExpression",
                                  "src": "8660:9:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function (uint256) pure returns (bytes memory)"
                                  },
                                  "typeName": {
                                    "id": 7618,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8664:5:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  }
                                },
                                "id": 7621,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8660:12:26",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 7612,
                              "name": "_mintBatch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                8241
                              ],
                              "referencedDeclaration": 8241,
                              "src": "8623:10:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                                "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                              }
                            },
                            "id": 7622,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8623:50:26",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 7623,
                          "nodeType": "ExpressionStatement",
                          "src": "8623:50:26"
                        }
                      ]
                    },
                    "id": 7625,
                    "nodeType": "IfStatement",
                    "src": "7974:710:26",
                    "trueBody": {
                      "id": 7611,
                      "nodeType": "Block",
                      "src": "7993:610:26",
                      "statements": [
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7549,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 7546,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7407,
                                "src": "8072:7:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 7547,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8080:6:26",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "8072:14:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 7548,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8090:1:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "8072:19:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 7609,
                            "nodeType": "Block",
                            "src": "8345:248:26",
                            "statements": [
                              {
                                "body": {
                                  "id": 7607,
                                  "nodeType": "Block",
                                  "src": "8448:131:26",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 7588,
                                              "name": "to",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7404,
                                              "src": "8476:2:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                              }
                                            },
                                            "id": 7590,
                                            "indexExpression": {
                                              "id": 7589,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7581,
                                              "src": "8479:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8476:5:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 7591,
                                              "name": "tokenIds",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7414,
                                              "src": "8483:8:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                "typeString": "uint256[] memory"
                                              }
                                            },
                                            "id": 7593,
                                            "indexExpression": {
                                              "hexValue": "30",
                                              "id": 7592,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8492:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                              },
                                              "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8483:11:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 7594,
                                              "name": "amounts",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7407,
                                              "src": "8496:7:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 7596,
                                            "indexExpression": {
                                              "id": 7595,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7581,
                                              "src": "8504:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8496:10:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30",
                                                "id": 7599,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8518:1:26",
                                                "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": 7598,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "NewExpression",
                                              "src": "8508:9:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (bytes memory)"
                                              },
                                              "typeName": {
                                                "id": 7597,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8512:5:26",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_storage_ptr",
                                                  "typeString": "bytes"
                                                }
                                              }
                                            },
                                            "id": 7600,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8508:12:26",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 7587,
                                          "name": "_mint",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            8193
                                          ],
                                          "referencedDeclaration": 8193,
                                          "src": "8470:5:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                            "typeString": "function (address,uint256,uint256,bytes memory)"
                                          }
                                        },
                                        "id": 7601,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8470:51:26",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 7602,
                                      "nodeType": "ExpressionStatement",
                                      "src": "8470:51:26"
                                    },
                                    {
                                      "id": 7606,
                                      "nodeType": "UncheckedBlock",
                                      "src": "8543:18:26",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 7604,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": true,
                                            "src": "8555:3:26",
                                            "subExpression": {
                                              "id": 7603,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7581,
                                              "src": "8557:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 7605,
                                          "nodeType": "ExpressionStatement",
                                          "src": "8555:3:26"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 7586,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 7583,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7581,
                                    "src": "8432:1:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "expression": {
                                      "id": 7584,
                                      "name": "to",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7404,
                                      "src": "8436:2:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 7585,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "8439:6:26",
                                    "memberName": "length",
                                    "nodeType": "MemberAccess",
                                    "src": "8436:9:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "8432:13:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 7608,
                                "initializationExpression": {
                                  "assignments": [
                                    7581
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 7581,
                                      "mutability": "mutable",
                                      "name": "i",
                                      "nameLocation": "8429:1:26",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 7608,
                                      "src": "8424:6:26",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "typeName": {
                                        "id": 7580,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8424:4:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 7582,
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "8424:6:26"
                                },
                                "nodeType": "ForStatement",
                                "src": "8419:160:26"
                              }
                            ]
                          },
                          "id": 7610,
                          "nodeType": "IfStatement",
                          "src": "8068:525:26",
                          "trueBody": {
                            "id": 7579,
                            "nodeType": "Block",
                            "src": "8093:246:26",
                            "statements": [
                              {
                                "body": {
                                  "id": 7577,
                                  "nodeType": "Block",
                                  "src": "8194:131:26",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 7558,
                                              "name": "to",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7404,
                                              "src": "8222:2:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                              }
                                            },
                                            "id": 7560,
                                            "indexExpression": {
                                              "id": 7559,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7551,
                                              "src": "8225:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8222:5:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 7561,
                                              "name": "tokenIds",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7414,
                                              "src": "8229:8:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                "typeString": "uint256[] memory"
                                              }
                                            },
                                            "id": 7563,
                                            "indexExpression": {
                                              "hexValue": "30",
                                              "id": 7562,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8238:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                              },
                                              "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8229:11:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 7564,
                                              "name": "amounts",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7407,
                                              "src": "8242:7:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 7566,
                                            "indexExpression": {
                                              "hexValue": "30",
                                              "id": 7565,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8250:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                              },
                                              "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8242:10:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30",
                                                "id": 7569,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8264:1:26",
                                                "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": 7568,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "NewExpression",
                                              "src": "8254:9:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (bytes memory)"
                                              },
                                              "typeName": {
                                                "id": 7567,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8258:5:26",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_storage_ptr",
                                                  "typeString": "bytes"
                                                }
                                              }
                                            },
                                            "id": 7570,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8254:12:26",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 7557,
                                          "name": "_mint",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            8193
                                          ],
                                          "referencedDeclaration": 8193,
                                          "src": "8216:5:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                            "typeString": "function (address,uint256,uint256,bytes memory)"
                                          }
                                        },
                                        "id": 7571,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8216:51:26",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 7572,
                                      "nodeType": "ExpressionStatement",
                                      "src": "8216:51:26"
                                    },
                                    {
                                      "id": 7576,
                                      "nodeType": "UncheckedBlock",
                                      "src": "8289:18:26",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 7574,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": true,
                                            "src": "8301:3:26",
                                            "subExpression": {
                                              "id": 7573,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7551,
                                              "src": "8303:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 7575,
                                          "nodeType": "ExpressionStatement",
                                          "src": "8301:3:26"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 7556,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 7553,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7551,
                                    "src": "8178:1:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "expression": {
                                      "id": 7554,
                                      "name": "to",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7404,
                                      "src": "8182:2:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 7555,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "8185:6:26",
                                    "memberName": "length",
                                    "nodeType": "MemberAccess",
                                    "src": "8182:9:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "8178:13:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 7578,
                                "initializationExpression": {
                                  "assignments": [
                                    7551
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 7551,
                                      "mutability": "mutable",
                                      "name": "i",
                                      "nameLocation": "8175:1:26",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 7578,
                                      "src": "8170:6:26",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "typeName": {
                                        "id": 7550,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8170:4:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 7552,
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "8170:6:26"
                                },
                                "nodeType": "ForStatement",
                                "src": "8165:160:26"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 7626,
                  "nodeType": "IfStatement",
                  "src": "7823:861:26",
                  "trueBody": {
                    "id": 7541,
                    "nodeType": "Block",
                    "src": "7867:101:26",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 7526,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7404,
                                "src": "7912:2:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 7528,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 7527,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7915:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7912:5:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 7529,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7414,
                                "src": "7919:8:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 7531,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 7530,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7928:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7919:11:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 7532,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7407,
                                "src": "7932:7:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 7534,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 7533,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7940:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7932:10:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 7537,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7954:1:26",
                                  "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": 7536,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "7944:9:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (bytes memory)"
                                },
                                "typeName": {
                                  "id": 7535,
                                  "name": "bytes",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7948:5:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_storage_ptr",
                                    "typeString": "bytes"
                                  }
                                }
                              },
                              "id": 7538,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7944:12:26",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 7525,
                            "name": "_mint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              8193
                            ],
                            "referencedDeclaration": 8193,
                            "src": "7906:5:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                              "typeString": "function (address,uint256,uint256,bytes memory)"
                            }
                          },
                          "id": 7539,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7906:51:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7540,
                        "nodeType": "ExpressionStatement",
                        "src": "7906:51:26"
                      }
                    ]
                  }
                },
                {
                  "body": {
                    "id": 7664,
                    "nodeType": "Block",
                    "src": "8729:171:26",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 7647,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7637,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 7634,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7628,
                              "src": "8747:1:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "expression": {
                                "id": 7635,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7410,
                                "src": "8751:4:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 7636,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8756:6:26",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "8751:11:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "8747:15:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7646,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 7640,
                                      "name": "uris",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7410,
                                      "src": "8772:4:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                        "typeString": "string calldata[] calldata"
                                      }
                                    },
                                    "id": 7642,
                                    "indexExpression": {
                                      "id": 7641,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7628,
                                      "src": "8777:1:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "8772:7:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_calldata_ptr",
                                      "typeString": "string calldata"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_calldata_ptr",
                                      "typeString": "string calldata"
                                    }
                                  ],
                                  "id": 7639,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8766:5:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": {
                                    "id": 7638,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8766:5:26",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 7643,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8766:14:26",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_calldata_ptr",
                                  "typeString": "bytes calldata"
                                }
                              },
                              "id": 7644,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8781:6:26",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "8766:21:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 7645,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8790:1:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "8766:25:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "8747:44:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 7659,
                        "nodeType": "IfStatement",
                        "src": "8743:116:26",
                        "trueBody": {
                          "id": 7658,
                          "nodeType": "Block",
                          "src": "8793:66:26",
                          "statements": [
                            {
                              "expression": {
                                "id": 7656,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 7648,
                                    "name": "_tokenURIs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 12456,
                                    "src": "8811:10:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                      "typeString": "mapping(uint256 => string storage ref)"
                                    }
                                  },
                                  "id": 7652,
                                  "indexExpression": {
                                    "baseExpression": {
                                      "id": 7649,
                                      "name": "tokenIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7414,
                                      "src": "8822:8:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                        "typeString": "uint256[] memory"
                                      }
                                    },
                                    "id": 7651,
                                    "indexExpression": {
                                      "id": 7650,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7628,
                                      "src": "8831:1:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "8822:11:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "8811:23:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 7653,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7410,
                                    "src": "8837:4:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 7655,
                                  "indexExpression": {
                                    "id": 7654,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7628,
                                    "src": "8842:1:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8837:7:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_calldata_ptr",
                                    "typeString": "string calldata"
                                  }
                                },
                                "src": "8811:33:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              },
                              "id": 7657,
                              "nodeType": "ExpressionStatement",
                              "src": "8811:33:26"
                            }
                          ]
                        }
                      },
                      {
                        "id": 7663,
                        "nodeType": "UncheckedBlock",
                        "src": "8872:18:26",
                        "statements": [
                          {
                            "expression": {
                              "id": 7661,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "8884:3:26",
                              "subExpression": {
                                "id": 7660,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7628,
                                "src": "8886:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 7662,
                            "nodeType": "ExpressionStatement",
                            "src": "8884:3:26"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7633,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7630,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7628,
                      "src": "8707:1:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 7631,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7414,
                        "src": "8711:8:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 7632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8720:6:26",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8711:15:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8707:19:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7665,
                  "initializationExpression": {
                    "assignments": [
                      7628
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7628,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "8704:1:26",
                        "nodeType": "VariableDeclaration",
                        "scope": 7665,
                        "src": "8699:6:26",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7627,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "8699:4:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 7629,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8699:6:26"
                  },
                  "nodeType": "ForStatement",
                  "src": "8694:206:26"
                }
              ]
            },
            "documentation": {
              "id": 7399,
              "nodeType": "StructuredDocumentation",
              "src": "6726:39:26",
              "text": " @dev Mint new tokens"
            },
            "id": 7667,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintNew",
            "nameLocation": "6779:8:26",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7411,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7401,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "6796:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7667,
                  "src": "6788:17:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7400,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6788:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7404,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6826:2:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7667,
                  "src": "6807:21:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7402,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6807:7:26",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 7403,
                    "nodeType": "ArrayTypeName",
                    "src": "6807:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7407,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "6849:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7667,
                  "src": "6830:26:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7405,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6830:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7406,
                    "nodeType": "ArrayTypeName",
                    "src": "6830:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7410,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "6876:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7667,
                  "src": "6858:22:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7408,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "6858:6:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 7409,
                    "nodeType": "ArrayTypeName",
                    "src": "6858:8:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6787:94:26"
            },
            "returnParameters": {
              "id": 7415,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7414,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "6916:8:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7667,
                  "src": "6899:25:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7412,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6899:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7413,
                    "nodeType": "ArrayTypeName",
                    "src": "6899:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6898:27:26"
            },
            "scope": 8327,
            "src": "6770:2136:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7880,
              "nodeType": "Block",
              "src": "9092:1489:26",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 7687,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7682,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7670,
                      "src": "9106:9:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 7685,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9127:1:26",
                          "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": 7684,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9119:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 7683,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "9119:7:26",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 7686,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9119:10:26",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "9106:23:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7695,
                  "nodeType": "IfStatement",
                  "src": "9102:98:26",
                  "trueBody": {
                    "id": 7694,
                    "nodeType": "Block",
                    "src": "9131:69:26",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 7689,
                              "name": "to",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7673,
                              "src": "9167:2:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              }
                            },
                            {
                              "id": 7690,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7676,
                              "src": "9171:8:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            {
                              "id": 7691,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7679,
                              "src": "9181:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] 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_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            ],
                            "id": 7688,
                            "name": "_checkMintPermissions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13655,
                            "src": "9145:21:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (address[] memory,uint256[] memory,uint256[] memory)"
                            }
                          },
                          "id": 7692,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9145:44:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7693,
                        "nodeType": "ExpressionStatement",
                        "src": "9145:44:26"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 7709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 7704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7699,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 7696,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7673,
                            "src": "9214:2:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                              "typeString": "address[] calldata"
                            }
                          },
                          "id": 7697,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9217:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9214:9:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 7698,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9227:1:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9214:14:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7703,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 7700,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7676,
                            "src": "9232:8:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 7701,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9241:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9232:15:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 7702,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9251:1:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9232:20:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "9214:38:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 7708,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 7705,
                          "name": "amounts",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7679,
                          "src": "9256:7:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                            "typeString": "uint256[] calldata"
                          }
                        },
                        "id": 7706,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9264:6:26",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "9256:14:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 7707,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9274:1:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "9256:19:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "9214:61:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 7736,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7730,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 7727,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7673,
                            "src": "9403:2:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                              "typeString": "address[] calldata"
                            }
                          },
                          "id": 7728,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9406:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9403:9:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 7729,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9416:1:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9403:14:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7735,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 7731,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7676,
                            "src": "9421:8:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 7732,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9430:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9421:15:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 7733,
                            "name": "amounts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7679,
                            "src": "9440:7:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 7734,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9448:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9440:14:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "9421:33:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "9403:51:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7758,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7753,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 7750,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7676,
                              "src": "9584:8:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            "id": 7751,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9593:6:26",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "9584:15:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 7752,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9603:1:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "9584:20:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7757,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 7754,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7679,
                              "src": "9608:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            "id": 7755,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9616:6:26",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "9608:14:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 7756,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9626:1:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "9608:19:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9584:43:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 7798,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7792,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 7789,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7676,
                                "src": "9884:8:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 7790,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9893:6:26",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "9884:15:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 7791,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9903:1:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "9884:20:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7797,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 7793,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7673,
                                "src": "9908:2:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 7794,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9911:6:26",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "9908:9:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "id": 7795,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7679,
                                "src": "9921:7:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 7796,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9929:6:26",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "9921:14:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "9908:27:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "9884:51:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 7839,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7833,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 7829,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7673,
                                  "src": "10203:2:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 7830,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10206:6:26",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10203:9:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "expression": {
                                  "id": 7831,
                                  "name": "tokenIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7676,
                                  "src": "10216:8:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 7832,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10225:6:26",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10216:15:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10203:28:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7838,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 7834,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7673,
                                  "src": "10235:2:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 7835,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10238:6:26",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10235:9:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "expression": {
                                  "id": 7836,
                                  "name": "amounts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7679,
                                  "src": "10248:7:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 7837,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10256:6:26",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10248:14:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10235:27:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "10203:59:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 7874,
                            "nodeType": "Block",
                            "src": "10527:48:26",
                            "statements": [
                              {
                                "expression": {
                                  "arguments": [
                                    {
                                      "hexValue": "496e76616c696420696e707574",
                                      "id": 7871,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "10548:15:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                        "typeString": "literal_string \"Invalid input\""
                                      },
                                      "value": "Invalid input"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                        "typeString": "literal_string \"Invalid input\""
                                      }
                                    ],
                                    "id": 7870,
                                    "name": "revert",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [
                                      4294967277,
                                      4294967277
                                    ],
                                    "referencedDeclaration": 4294967277,
                                    "src": "10541:6:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                      "typeString": "function (string memory) pure"
                                    }
                                  },
                                  "id": 7872,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10541:23:26",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 7873,
                                "nodeType": "ExpressionStatement",
                                "src": "10541:23:26"
                              }
                            ]
                          },
                          "id": 7875,
                          "nodeType": "IfStatement",
                          "src": "10199:376:26",
                          "trueBody": {
                            "id": 7869,
                            "nodeType": "Block",
                            "src": "10264:257:26",
                            "statements": [
                              {
                                "body": {
                                  "id": 7867,
                                  "nodeType": "Block",
                                  "src": "10392:119:26",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 7848,
                                              "name": "to",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7673,
                                              "src": "10416:2:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                              }
                                            },
                                            "id": 7850,
                                            "indexExpression": {
                                              "id": 7849,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7841,
                                              "src": "10419:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10416:5:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 7851,
                                              "name": "tokenIds",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7676,
                                              "src": "10423:8:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 7853,
                                            "indexExpression": {
                                              "id": 7852,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7841,
                                              "src": "10432:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10423:11:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 7854,
                                              "name": "amounts",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7679,
                                              "src": "10436:7:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 7856,
                                            "indexExpression": {
                                              "id": 7855,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7841,
                                              "src": "10444:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10436:10:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30",
                                                "id": 7859,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "10458:1:26",
                                                "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": 7858,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "NewExpression",
                                              "src": "10448:9:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (bytes memory)"
                                              },
                                              "typeName": {
                                                "id": 7857,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "10452:5:26",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_storage_ptr",
                                                  "typeString": "bytes"
                                                }
                                              }
                                            },
                                            "id": 7860,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "10448:12:26",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 7847,
                                          "name": "_mint",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            8193
                                          ],
                                          "referencedDeclaration": 8193,
                                          "src": "10410:5:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                            "typeString": "function (address,uint256,uint256,bytes memory)"
                                          }
                                        },
                                        "id": 7861,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10410:51:26",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 7862,
                                      "nodeType": "ExpressionStatement",
                                      "src": "10410:51:26"
                                    },
                                    {
                                      "id": 7866,
                                      "nodeType": "UncheckedBlock",
                                      "src": "10479:18:26",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 7864,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": true,
                                            "src": "10491:3:26",
                                            "subExpression": {
                                              "id": 7863,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7841,
                                              "src": "10493:1:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 7865,
                                          "nodeType": "ExpressionStatement",
                                          "src": "10491:3:26"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 7846,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 7843,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7841,
                                    "src": "10376:1:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "expression": {
                                      "id": 7844,
                                      "name": "to",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7673,
                                      "src": "10380:2:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 7845,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "10383:6:26",
                                    "memberName": "length",
                                    "nodeType": "MemberAccess",
                                    "src": "10380:9:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "10376:13:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 7868,
                                "initializationExpression": {
                                  "assignments": [
                                    7841
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 7841,
                                      "mutability": "mutable",
                                      "name": "i",
                                      "nameLocation": "10373:1:26",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 7868,
                                      "src": "10368:6:26",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "typeName": {
                                        "id": 7840,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10368:4:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 7842,
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "10368:6:26"
                                },
                                "nodeType": "ForStatement",
                                "src": "10363:148:26"
                              }
                            ]
                          }
                        },
                        "id": 7876,
                        "nodeType": "IfStatement",
                        "src": "9880:695:26",
                        "trueBody": {
                          "id": 7828,
                          "nodeType": "Block",
                          "src": "9937:256:26",
                          "statements": [
                            {
                              "body": {
                                "id": 7826,
                                "nodeType": "Block",
                                "src": "10064:119:26",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "baseExpression": {
                                            "id": 7807,
                                            "name": "to",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7673,
                                            "src": "10088:2:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                              "typeString": "address[] calldata"
                                            }
                                          },
                                          "id": 7809,
                                          "indexExpression": {
                                            "id": 7808,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7800,
                                            "src": "10091:1:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10088:5:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        {
                                          "baseExpression": {
                                            "id": 7810,
                                            "name": "tokenIds",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7676,
                                            "src": "10095:8:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                              "typeString": "uint256[] calldata"
                                            }
                                          },
                                          "id": 7812,
                                          "indexExpression": {
                                            "hexValue": "30",
                                            "id": 7811,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10104:1:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10095:11:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        {
                                          "baseExpression": {
                                            "id": 7813,
                                            "name": "amounts",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7679,
                                            "src": "10108:7:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                              "typeString": "uint256[] calldata"
                                            }
                                          },
                                          "id": 7815,
                                          "indexExpression": {
                                            "id": 7814,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7800,
                                            "src": "10116:1:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10108:10:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        {
                                          "arguments": [
                                            {
                                              "hexValue": "30",
                                              "id": 7818,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "10130:1:26",
                                              "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": 7817,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "NewExpression",
                                            "src": "10120:9:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                              "typeString": "function (uint256) pure returns (bytes memory)"
                                            },
                                            "typeName": {
                                              "id": 7816,
                                              "name": "bytes",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "10124:5:26",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_storage_ptr",
                                                "typeString": "bytes"
                                              }
                                            }
                                          },
                                          "id": 7819,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "10120:12:26",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          },
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        ],
                                        "id": 7806,
                                        "name": "_mint",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [
                                          8193
                                        ],
                                        "referencedDeclaration": 8193,
                                        "src": "10082:5:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                          "typeString": "function (address,uint256,uint256,bytes memory)"
                                        }
                                      },
                                      "id": 7820,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10082:51:26",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 7821,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10082:51:26"
                                  },
                                  {
                                    "id": 7825,
                                    "nodeType": "UncheckedBlock",
                                    "src": "10151:18:26",
                                    "statements": [
                                      {
                                        "expression": {
                                          "id": 7823,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "UnaryOperation",
                                          "operator": "++",
                                          "prefix": true,
                                          "src": "10163:3:26",
                                          "subExpression": {
                                            "id": 7822,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7800,
                                            "src": "10165:1:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 7824,
                                        "nodeType": "ExpressionStatement",
                                        "src": "10163:3:26"
                                      }
                                    ]
                                  }
                                ]
                              },
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 7805,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 7802,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7800,
                                  "src": "10048:1:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "expression": {
                                    "id": 7803,
                                    "name": "to",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7673,
                                    "src": "10052:2:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                      "typeString": "address[] calldata"
                                    }
                                  },
                                  "id": 7804,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "10055:6:26",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "10052:9:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "10048:13:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 7827,
                              "initializationExpression": {
                                "assignments": [
                                  7800
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 7800,
                                    "mutability": "mutable",
                                    "name": "i",
                                    "nameLocation": "10045:1:26",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7827,
                                    "src": "10040:6:26",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "typeName": {
                                      "id": 7799,
                                      "name": "uint",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "10040:4:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 7801,
                                "nodeType": "VariableDeclarationStatement",
                                "src": "10040:6:26"
                              },
                              "nodeType": "ForStatement",
                              "src": "10035:148:26"
                            }
                          ]
                        }
                      },
                      "id": 7877,
                      "nodeType": "IfStatement",
                      "src": "9580:995:26",
                      "trueBody": {
                        "id": 7788,
                        "nodeType": "Block",
                        "src": "9629:245:26",
                        "statements": [
                          {
                            "body": {
                              "id": 7786,
                              "nodeType": "Block",
                              "src": "9745:119:26",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "baseExpression": {
                                          "id": 7767,
                                          "name": "to",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7673,
                                          "src": "9769:2:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 7769,
                                        "indexExpression": {
                                          "id": 7768,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7760,
                                          "src": "9772:1:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9769:5:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "baseExpression": {
                                          "id": 7770,
                                          "name": "tokenIds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7676,
                                          "src": "9776:8:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 7772,
                                        "indexExpression": {
                                          "hexValue": "30",
                                          "id": 7771,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9785:1:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9776:11:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      {
                                        "baseExpression": {
                                          "id": 7773,
                                          "name": "amounts",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7679,
                                          "src": "9789:7:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 7775,
                                        "indexExpression": {
                                          "hexValue": "30",
                                          "id": 7774,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9797:1:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9789:10:26",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "hexValue": "30",
                                            "id": 7778,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9811:1:26",
                                            "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": 7777,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "NewExpression",
                                          "src": "9801:9:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                            "typeString": "function (uint256) pure returns (bytes memory)"
                                          },
                                          "typeName": {
                                            "id": 7776,
                                            "name": "bytes",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "9805:5:26",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_storage_ptr",
                                              "typeString": "bytes"
                                            }
                                          }
                                        },
                                        "id": 7779,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9801:12:26",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      ],
                                      "id": 7766,
                                      "name": "_mint",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [
                                        8193
                                      ],
                                      "referencedDeclaration": 8193,
                                      "src": "9763:5:26",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                        "typeString": "function (address,uint256,uint256,bytes memory)"
                                      }
                                    },
                                    "id": 7780,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9763:51:26",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 7781,
                                  "nodeType": "ExpressionStatement",
                                  "src": "9763:51:26"
                                },
                                {
                                  "id": 7785,
                                  "nodeType": "UncheckedBlock",
                                  "src": "9832:18:26",
                                  "statements": [
                                    {
                                      "expression": {
                                        "id": 7783,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "UnaryOperation",
                                        "operator": "++",
                                        "prefix": true,
                                        "src": "9844:3:26",
                                        "subExpression": {
                                          "id": 7782,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7760,
                                          "src": "9846:1:26",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 7784,
                                      "nodeType": "ExpressionStatement",
                                      "src": "9844:3:26"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7765,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 7762,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7760,
                                "src": "9729:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "expression": {
                                  "id": 7763,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7673,
                                  "src": "9733:2:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 7764,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "9736:6:26",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "9733:9:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "9729:13:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 7787,
                            "initializationExpression": {
                              "assignments": [
                                7760
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 7760,
                                  "mutability": "mutable",
                                  "name": "i",
                                  "nameLocation": "9726:1:26",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 7787,
                                  "src": "9721:6:26",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 7759,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9721:4:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 7761,
                              "nodeType": "VariableDeclarationStatement",
                              "src": "9721:6:26"
                            },
                            "nodeType": "ForStatement",
                            "src": "9716:148:26"
                          }
                        ]
                      }
                    },
                    "id": 7878,
                    "nodeType": "IfStatement",
                    "src": "9399:1176:26",
                    "trueBody": {
                      "id": 7749,
                      "nodeType": "Block",
                      "src": "9456:118:26",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 7738,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7673,
                                  "src": "9524:2:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 7740,
                                "indexExpression": {
                                  "hexValue": "30",
                                  "id": 7739,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9527:1:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9524:5:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "id": 7741,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7676,
                                "src": "9531:8:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              {
                                "id": 7742,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7679,
                                "src": "9541:7:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "hexValue": "30",
                                    "id": 7745,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "9560:1:26",
                                    "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": 7744,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "NewExpression",
                                  "src": "9550:9:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function (uint256) pure returns (bytes memory)"
                                  },
                                  "typeName": {
                                    "id": 7743,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9554:5:26",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  }
                                },
                                "id": 7746,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9550:12:26",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 7737,
                              "name": "_mintBatch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                8241
                              ],
                              "referencedDeclaration": 8241,
                              "src": "9513:10:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                                "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                              }
                            },
                            "id": 7747,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9513:50:26",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 7748,
                          "nodeType": "ExpressionStatement",
                          "src": "9513:50:26"
                        }
                      ]
                    }
                  },
                  "id": 7879,
                  "nodeType": "IfStatement",
                  "src": "9210:1365:26",
                  "trueBody": {
                    "id": 7726,
                    "nodeType": "Block",
                    "src": "9277:116:26",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 7711,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7673,
                                "src": "9325:2:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 7713,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 7712,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9328:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9325:5:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 7714,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7676,
                                "src": "9332:8:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 7716,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 7715,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9341:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9332:11:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 7717,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7679,
                                "src": "9345:7:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 7719,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 7718,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9353:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9345:10:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 7722,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9367:1:26",
                                  "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": 7721,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "9357:9:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (bytes memory)"
                                },
                                "typeName": {
                                  "id": 7720,
                                  "name": "bytes",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "9361:5:26",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_storage_ptr",
                                    "typeString": "bytes"
                                  }
                                }
                              },
                              "id": 7723,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9357:12:26",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 7710,
                            "name": "_mint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              8193
                            ],
                            "referencedDeclaration": 8193,
                            "src": "9319:5:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                              "typeString": "function (address,uint256,uint256,bytes memory)"
                            }
                          },
                          "id": 7724,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9319:51:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7725,
                        "nodeType": "ExpressionStatement",
                        "src": "9319:51:26"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 7668,
              "nodeType": "StructuredDocumentation",
              "src": "8912:44:26",
              "text": " @dev Mint existing tokens"
            },
            "id": 7881,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintExisting",
            "nameLocation": "8970:13:26",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7670,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "8992:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7881,
                  "src": "8984:17:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7669,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8984:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7673,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "9022:2:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7881,
                  "src": "9003:21:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7671,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "9003:7:26",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 7672,
                    "nodeType": "ArrayTypeName",
                    "src": "9003:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7676,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "9045:8:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7881,
                  "src": "9026:27:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7674,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "9026:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7675,
                    "nodeType": "ArrayTypeName",
                    "src": "9026:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7679,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "9074:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7881,
                  "src": "9055:26:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7677,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "9055:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7678,
                    "nodeType": "ArrayTypeName",
                    "src": "9055:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8983:99:26"
            },
            "returnParameters": {
              "id": 7681,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9092:0:26"
            },
            "scope": 8327,
            "src": "8961:1620:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15100
            ],
            "body": {
              "id": 7915,
              "nodeType": "Block",
              "src": "10755:208:26",
              "statements": [
                {
                  "expression": {
                    "id": 7894,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7890,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7888,
                      "src": "10765:9:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 7892,
                          "name": "tokenId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7884,
                          "src": "10793:7:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 7891,
                        "name": "_tokenExtension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          13853
                        ],
                        "referencedDeclaration": 13853,
                        "src": "10777:15:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                          "typeString": "function (uint256) view returns (address)"
                        }
                      },
                      "id": 7893,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10777:24:26",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10765:36:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 7895,
                  "nodeType": "ExpressionStatement",
                  "src": "10765:36:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 7902,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7897,
                          "name": "extension",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7888,
                          "src": "10819:9:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 7900,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10840:1:26",
                              "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": 7899,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10832:7:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 7898,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "10832:7:26",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 7901,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10832:10:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "10819:23:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f20657874656e73696f6e20666f7220746f6b656e",
                        "id": 7903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10844:24:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd",
                          "typeString": "literal_string \"No extension for token\""
                        },
                        "value": "No extension for token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd",
                          "typeString": "literal_string \"No extension for token\""
                        }
                      ],
                      "id": 7896,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10811:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7904,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10811:58:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7905,
                  "nodeType": "ExpressionStatement",
                  "src": "10811:58:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7911,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "10887:43:26",
                        "subExpression": {
                          "arguments": [
                            {
                              "id": 7909,
                              "name": "extension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7888,
                              "src": "10920:9:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "id": 7907,
                              "name": "_blacklistedExtensions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12440,
                              "src": "10888:22:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AddressSet_$3529_storage",
                                "typeString": "struct EnumerableSet.AddressSet storage ref"
                              }
                            },
                            "id": 7908,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10911:8:26",
                            "memberName": "contains",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3610,
                            "src": "10888:31:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3529_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$3529_storage_ptr_$",
                              "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 7910,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10888:42:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "457874656e73696f6e20626c61636b6c6973746564",
                        "id": 7912,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10932:23:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621",
                          "typeString": "literal_string \"Extension blacklisted\""
                        },
                        "value": "Extension blacklisted"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621",
                          "typeString": "literal_string \"Extension blacklisted\""
                        }
                      ],
                      "id": 7906,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10879:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10879:77:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7914,
                  "nodeType": "ExpressionStatement",
                  "src": "10879:77:26"
                }
              ]
            },
            "documentation": {
              "id": 7882,
              "nodeType": "StructuredDocumentation",
              "src": "10587:65:26",
              "text": " @dev See {IERC1155CreatorCore-tokenExtension}."
            },
            "functionSelector": "239be317",
            "id": 7916,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenExtension",
            "nameLocation": "10666:14:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7886,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10718:8:26"
            },
            "parameters": {
              "id": 7885,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7884,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "10689:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7916,
                  "src": "10681:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7883,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10681:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10680:17:26"
            },
            "returnParameters": {
              "id": 7889,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7888,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "10744:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7916,
                  "src": "10736:17:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7887,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10736:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10735:19:26"
            },
            "scope": 8327,
            "src": "10657:306:26",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15273
            ],
            "body": {
              "id": 7983,
              "nodeType": "Block",
              "src": "11154:407:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7941,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 7935,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7932,
                            "name": "account",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7919,
                            "src": "11172:7:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "id": 7933,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "11183:3:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 7934,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11187:6:26",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "11183:10:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "11172:21:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 7937,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7919,
                              "src": "11214:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 7938,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967281,
                                "src": "11223:3:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 7939,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11227:6:26",
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "src": "11223:10:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 7936,
                            "name": "isApprovedForAll",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18729,
                            "src": "11197:16:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (address,address) view returns (bool)"
                            }
                          },
                          "id": 7940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11197:37:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "11172:62:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564",
                        "id": 7942,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11236:33:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e",
                          "typeString": "literal_string \"Caller is not owner or approved\""
                        },
                        "value": "Caller is not owner or approved"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e",
                          "typeString": "literal_string \"Caller is not owner or approved\""
                        }
                      ],
                      "id": 7931,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11164:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7943,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11164:106:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7944,
                  "nodeType": "ExpressionStatement",
                  "src": "11164:106:26"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7950,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 7946,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7922,
                            "src": "11288:8:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 7947,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "11297:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "11288:15:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 7948,
                            "name": "amounts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7925,
                            "src": "11307:7:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 7949,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "11315:6:26",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "11307:14:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11288:33:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 7951,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11323:15:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        },
                        "value": "Invalid input"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        }
                      ],
                      "id": 7945,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11280:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7952,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11280:59:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7953,
                  "nodeType": "ExpressionStatement",
                  "src": "11280:59:26"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7957,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 7954,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7922,
                        "src": "11353:8:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 7955,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11362:6:26",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "11353:15:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 7956,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11372:1:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "11353:20:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 7975,
                    "nodeType": "Block",
                    "src": "11445:63:26",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 7970,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7919,
                              "src": "11470:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 7971,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7922,
                              "src": "11479:8:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            {
                              "id": 7972,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7925,
                              "src": "11489:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            ],
                            "id": 7969,
                            "name": "_burnBatch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              8312
                            ],
                            "referencedDeclaration": 8312,
                            "src": "11459:10:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (address,uint256[] memory,uint256[] memory)"
                            }
                          },
                          "id": 7973,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11459:38:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7974,
                        "nodeType": "ExpressionStatement",
                        "src": "11459:38:26"
                      }
                    ]
                  },
                  "id": 7976,
                  "nodeType": "IfStatement",
                  "src": "11349:159:26",
                  "trueBody": {
                    "id": 7968,
                    "nodeType": "Block",
                    "src": "11375:64:26",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 7959,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7919,
                              "src": "11395:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 7960,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7922,
                                "src": "11404:8:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 7962,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 7961,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11413:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11404:11:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 7963,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7925,
                                "src": "11417:7:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 7965,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 7964,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11425:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11417:10:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 7958,
                            "name": "_burn",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              8267
                            ],
                            "referencedDeclaration": 8267,
                            "src": "11389:5:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (address,uint256,uint256)"
                            }
                          },
                          "id": 7966,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11389:39:26",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7967,
                        "nodeType": "ExpressionStatement",
                        "src": "11389:39:26"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7978,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7919,
                        "src": "11527:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 7979,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7922,
                        "src": "11536:8:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 7980,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7925,
                        "src": "11546:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 7977,
                      "name": "_postBurn",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13735,
                      "src": "11517:9:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 7981,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11517:37:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7982,
                  "nodeType": "ExpressionStatement",
                  "src": "11517:37:26"
                }
              ]
            },
            "documentation": {
              "id": 7917,
              "nodeType": "StructuredDocumentation",
              "src": "10969:55:26",
              "text": " @dev See {IERC1155CreatorCore-burn}."
            },
            "functionSelector": "3db0f8ab",
            "id": 7984,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7929,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7928,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "11141:12:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "11141:12:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "11141:12:26"
              }
            ],
            "name": "burn",
            "nameLocation": "11038:4:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7927,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11132:8:26"
            },
            "parameters": {
              "id": 7926,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7919,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "11051:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7984,
                  "src": "11043:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7918,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11043:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7922,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "11079:8:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7984,
                  "src": "11060:27:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7920,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11060:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7921,
                    "nodeType": "ArrayTypeName",
                    "src": "11060:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7925,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "11108:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 7984,
                  "src": "11089:26:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7923,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11089:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7924,
                    "nodeType": "ArrayTypeName",
                    "src": "11089:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11042:74:26"
            },
            "returnParameters": {
              "id": 7930,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11154:0:26"
            },
            "scope": 8327,
            "src": "11029:532:26",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15110
            ],
            "body": {
              "id": 8006,
              "nodeType": "Block",
              "src": "11752:75:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 8000,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11793:1:26",
                            "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": 7999,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "11785:7:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 7998,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "11785:7:26",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 8001,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11785:10:26",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 8002,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7988,
                        "src": "11797:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 8003,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7991,
                        "src": "11808:11:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 7997,
                      "name": "_setRoyaltiesExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13346,
                      "src": "11762:22:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_payable_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address payable[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 8004,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11762:58:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8005,
                  "nodeType": "ExpressionStatement",
                  "src": "11762:58:26"
                }
              ]
            },
            "documentation": {
              "id": 7985,
              "nodeType": "StructuredDocumentation",
              "src": "11567:56:26",
              "text": " @dev See {ICreatorCore-setRoyalties}."
            },
            "functionSelector": "332dd1ae",
            "id": 8007,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7995,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7994,
                  "name": "adminRequired",
                  "nameLocations": [
                    "11738:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "11738:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "11738:13:26"
              }
            ],
            "name": "setRoyalties",
            "nameLocation": "11637:12:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7993,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11729:8:26"
            },
            "parameters": {
              "id": 7992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7988,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "11677:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8007,
                  "src": "11650:36:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7986,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11650:15:26",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 7987,
                    "nodeType": "ArrayTypeName",
                    "src": "11650:17:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7991,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "11707:11:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8007,
                  "src": "11688:30:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7989,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11688:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7990,
                    "nodeType": "ArrayTypeName",
                    "src": "11688:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11649:70:26"
            },
            "returnParameters": {
              "id": 7996,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11752:0:26"
            },
            "scope": 8327,
            "src": "11628:199:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15122
            ],
            "body": {
              "id": 8028,
              "nodeType": "Block",
              "src": "12035:63:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8023,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8010,
                        "src": "12059:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 8024,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8013,
                        "src": "12068:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 8025,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8016,
                        "src": "12079:11:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 8022,
                      "name": "_setRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13295,
                      "src": "12045:13:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_payable_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,address payable[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 8026,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12045:46:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8027,
                  "nodeType": "ExpressionStatement",
                  "src": "12045:46:26"
                }
              ]
            },
            "documentation": {
              "id": 8008,
              "nodeType": "StructuredDocumentation",
              "src": "11833:56:26",
              "text": " @dev See {ICreatorCore-setRoyalties}."
            },
            "functionSelector": "20e4afe2",
            "id": 8029,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 8020,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 8019,
                  "name": "adminRequired",
                  "nameLocations": [
                    "12021:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "12021:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "12021:13:26"
              }
            ],
            "name": "setRoyalties",
            "nameLocation": "11903:12:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8018,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12012:8:26"
            },
            "parameters": {
              "id": 8017,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8010,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "11924:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8029,
                  "src": "11916:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8009,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11916:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8013,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "11960:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8029,
                  "src": "11933:36:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8011,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11933:15:26",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 8012,
                    "nodeType": "ArrayTypeName",
                    "src": "11933:17:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8016,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "11990:11:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8029,
                  "src": "11971:30:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8014,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11971:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8015,
                    "nodeType": "ArrayTypeName",
                    "src": "11971:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11915:87:26"
            },
            "returnParameters": {
              "id": 8021,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12035:0:26"
            },
            "scope": 8327,
            "src": "11894:204:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15134
            ],
            "body": {
              "id": 8050,
              "nodeType": "Block",
              "src": "12326:74:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8045,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8032,
                        "src": "12359:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 8046,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8035,
                        "src": "12370:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 8047,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8038,
                        "src": "12381:11:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 8044,
                      "name": "_setRoyaltiesExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13346,
                      "src": "12336:22:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_payable_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address payable[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 8048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12336:57:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8049,
                  "nodeType": "ExpressionStatement",
                  "src": "12336:57:26"
                }
              ]
            },
            "documentation": {
              "id": 8030,
              "nodeType": "StructuredDocumentation",
              "src": "12104:65:26",
              "text": " @dev See {ICreatorCore-setRoyaltiesExtension}."
            },
            "functionSelector": "b0fe87c9",
            "id": 8051,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 8042,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 8041,
                  "name": "adminRequired",
                  "nameLocations": [
                    "12312:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "12312:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "12312:13:26"
              }
            ],
            "name": "setRoyaltiesExtension",
            "nameLocation": "12183:21:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8040,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12303:8:26"
            },
            "parameters": {
              "id": 8039,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8032,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "12213:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8051,
                  "src": "12205:17:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8031,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12205:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8035,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "12251:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8051,
                  "src": "12224:36:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8033,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12224:15:26",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 8034,
                    "nodeType": "ArrayTypeName",
                    "src": "12224:17:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8038,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "12281:11:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8051,
                  "src": "12262:30:26",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8036,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "12262:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8037,
                    "nodeType": "ArrayTypeName",
                    "src": "12262:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12204:89:26"
            },
            "returnParameters": {
              "id": 8043,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12326:0:26"
            },
            "scope": 8327,
            "src": "12174:226:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15146
            ],
            "body": {
              "id": 8068,
              "nodeType": "Block",
              "src": "12590:46:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8065,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8054,
                        "src": "12621:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8064,
                      "name": "_getRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13169,
                      "src": "12607:13:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (address payable[] memory,uint256[] memory)"
                      }
                    },
                    "id": 8066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12607:22:26",
                    "tryCall": false,
                    "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": 8063,
                  "id": 8067,
                  "nodeType": "Return",
                  "src": "12600:29:26"
                }
              ]
            },
            "documentation": {
              "id": 8052,
              "nodeType": "StructuredDocumentation",
              "src": "12406:56:26",
              "text": " @dev See {ICreatorCore-getRoyalties}."
            },
            "functionSelector": "bb3bafd6",
            "id": 8069,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRoyalties",
            "nameLocation": "12476:12:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8056,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12528:8:26"
            },
            "parameters": {
              "id": 8055,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8054,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12497:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8069,
                  "src": "12489:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8053,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12489:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12488:17:26"
            },
            "returnParameters": {
              "id": 8063,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8059,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8069,
                  "src": "12546:24:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8057,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12546:15:26",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 8058,
                    "nodeType": "ArrayTypeName",
                    "src": "12546:17:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8062,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8069,
                  "src": "12572:16:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8060,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "12572:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8061,
                    "nodeType": "ArrayTypeName",
                    "src": "12572:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12545:44:26"
            },
            "scope": 8327,
            "src": "12467:169:26",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15173
            ],
            "body": {
              "id": 8086,
              "nodeType": "Block",
              "src": "12816:46:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8083,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8072,
                        "src": "12847:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8082,
                      "name": "_getRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13169,
                      "src": "12833:13:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (address payable[] memory,uint256[] memory)"
                      }
                    },
                    "id": 8084,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12833:22:26",
                    "tryCall": false,
                    "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": 8081,
                  "id": 8085,
                  "nodeType": "Return",
                  "src": "12826:29:26"
                }
              ]
            },
            "documentation": {
              "id": 8070,
              "nodeType": "StructuredDocumentation",
              "src": "12642:51:26",
              "text": " @dev See {ICreatorCore-getFees}."
            },
            "functionSelector": "d5a06d4c",
            "id": 8087,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFees",
            "nameLocation": "12707:7:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8074,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12754:8:26"
            },
            "parameters": {
              "id": 8073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8072,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12723:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8087,
                  "src": "12715:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8071,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12715:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12714:17:26"
            },
            "returnParameters": {
              "id": 8081,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8077,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8087,
                  "src": "12772:24:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8075,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12772:15:26",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 8076,
                    "nodeType": "ArrayTypeName",
                    "src": "12772:17:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8080,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8087,
                  "src": "12798:16:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8078,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "12798:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8079,
                    "nodeType": "ArrayTypeName",
                    "src": "12798:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12771:44:26"
            },
            "scope": 8327,
            "src": "12698:164:26",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15154
            ],
            "body": {
              "id": 8101,
              "nodeType": "Block",
              "src": "13042:53:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8098,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8090,
                        "src": "13080:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8097,
                      "name": "_getRoyaltyReceivers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13186,
                      "src": "13059:20:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (address payable[] memory)"
                      }
                    },
                    "id": 8099,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13059:29:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                      "typeString": "address payable[] memory"
                    }
                  },
                  "functionReturnParameters": 8096,
                  "id": 8100,
                  "nodeType": "Return",
                  "src": "13052:36:26"
                }
              ]
            },
            "documentation": {
              "id": 8088,
              "nodeType": "StructuredDocumentation",
              "src": "12868:60:26",
              "text": " @dev See {ICreatorCore-getFeeRecipients}."
            },
            "functionSelector": "b9c4d9fb",
            "id": 8102,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeRecipients",
            "nameLocation": "12942:16:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8092,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12998:8:26"
            },
            "parameters": {
              "id": 8091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8090,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12967:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8102,
                  "src": "12959:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8089,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12959:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12958:17:26"
            },
            "returnParameters": {
              "id": 8096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8095,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8102,
                  "src": "13016:24:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8093,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "13016:15:26",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 8094,
                    "nodeType": "ArrayTypeName",
                    "src": "13016:17:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13015:26:26"
            },
            "scope": 8327,
            "src": "12933:162:26",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15162
            ],
            "body": {
              "id": 8116,
              "nodeType": "Block",
              "src": "13250:47:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8113,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8105,
                        "src": "13282:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8112,
                      "name": "_getRoyaltyBPS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13203,
                      "src": "13267:14:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (uint256[] memory)"
                      }
                    },
                    "id": 8114,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13267:23:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 8111,
                  "id": 8115,
                  "nodeType": "Return",
                  "src": "13260:30:26"
                }
              ]
            },
            "documentation": {
              "id": 8103,
              "nodeType": "StructuredDocumentation",
              "src": "13101:53:26",
              "text": " @dev See {ICreatorCore-getFeeBps}."
            },
            "functionSelector": "0ebd4c7f",
            "id": 8117,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeBps",
            "nameLocation": "13168:9:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8107,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13217:8:26"
            },
            "parameters": {
              "id": 8106,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8105,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13186:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8117,
                  "src": "13178:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8104,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13178:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13177:17:26"
            },
            "returnParameters": {
              "id": 8111,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8110,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8117,
                  "src": "13235:13:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8108,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "13235:4:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8109,
                    "nodeType": "ArrayTypeName",
                    "src": "13235:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13234:15:26"
            },
            "scope": 8327,
            "src": "13159:138:26",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15184
            ],
            "body": {
              "id": 8135,
              "nodeType": "Block",
              "src": "13478:55:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8131,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8120,
                        "src": "13511:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 8132,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8122,
                        "src": "13520:5:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8130,
                      "name": "_getRoyaltyInfo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13258,
                      "src": "13495:15:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_address_$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view returns (address,uint256)"
                      }
                    },
                    "id": 8133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13495:31:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
                      "typeString": "tuple(address,uint256)"
                    }
                  },
                  "functionReturnParameters": 8129,
                  "id": 8134,
                  "nodeType": "Return",
                  "src": "13488:38:26"
                }
              ]
            },
            "documentation": {
              "id": 8118,
              "nodeType": "StructuredDocumentation",
              "src": "13307:55:26",
              "text": " @dev See {ICreatorCore-royaltyInfo}."
            },
            "functionSelector": "2a55205a",
            "id": 8136,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "royaltyInfo",
            "nameLocation": "13376:11:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8124,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13442:8:26"
            },
            "parameters": {
              "id": 8123,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8120,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13396:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8136,
                  "src": "13388:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8119,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13388:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8122,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "13413:5:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8136,
                  "src": "13405:13:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8121,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13405:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13387:32:26"
            },
            "returnParameters": {
              "id": 8129,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8126,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8136,
                  "src": "13460:7:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8125,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13460:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8128,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8136,
                  "src": "13469:7:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8127,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13469:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13459:18:26"
            },
            "scope": 8327,
            "src": "13367:166:26",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1388
            ],
            "body": {
              "id": 8149,
              "nodeType": "Block",
              "src": "13682:42:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8146,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8139,
                        "src": "13709:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8145,
                      "name": "_tokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13017,
                      "src": "13699:9:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (uint256) view returns (string memory)"
                      }
                    },
                    "id": 8147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13699:18:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 8144,
                  "id": 8148,
                  "nodeType": "Return",
                  "src": "13692:25:26"
                }
              ]
            },
            "documentation": {
              "id": 8137,
              "nodeType": "StructuredDocumentation",
              "src": "13540:54:26",
              "text": " @dev See {IERC1155MetadataURI-uri}."
            },
            "functionSelector": "0e89341c",
            "id": 8150,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "uri",
            "nameLocation": "13608:3:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8141,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13649:8:26"
            },
            "parameters": {
              "id": 8140,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8139,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13620:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8150,
                  "src": "13612:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8138,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13612:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13611:17:26"
            },
            "returnParameters": {
              "id": 8144,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8143,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8150,
                  "src": "13667:13:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 8142,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "13667:6:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13666:15:26"
            },
            "scope": 8327,
            "src": "13599:125:26",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15281
            ],
            "body": {
              "id": 8163,
              "nodeType": "Block",
              "src": "13892:45:26",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 8159,
                      "name": "_totalSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6841,
                      "src": "13909:12:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 8161,
                    "indexExpression": {
                      "id": 8160,
                      "name": "tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8153,
                      "src": "13922:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13909:21:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 8158,
                  "id": 8162,
                  "nodeType": "Return",
                  "src": "13902:28:26"
                }
              ]
            },
            "documentation": {
              "id": 8151,
              "nodeType": "StructuredDocumentation",
              "src": "13734:66:26",
              "text": " @dev Total amount of tokens in with a given id."
            },
            "functionSelector": "bd85b039",
            "id": 8164,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nameLocation": "13814:11:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8155,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13865:8:26"
            },
            "parameters": {
              "id": 8154,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8153,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13834:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8164,
                  "src": "13826:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8152,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13826:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13825:17:26"
            },
            "returnParameters": {
              "id": 8158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8157,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8164,
                  "src": "13883:7:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8156,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13883:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13882:9:26"
            },
            "scope": 8327,
            "src": "13805:132:26",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              19160
            ],
            "body": {
              "id": 8192,
              "nodeType": "Block",
              "src": "14097:91:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8180,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8167,
                        "src": "14119:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 8181,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8169,
                        "src": "14128:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 8182,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8171,
                        "src": "14132:6:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 8183,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8173,
                        "src": "14140:4:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 8177,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14107:5:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155CreatorUpgradeable_$8327_$",
                          "typeString": "type(contract super ERC1155CreatorUpgradeable)"
                        }
                      },
                      "id": 8179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14113:5:26",
                      "memberName": "_mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19160,
                      "src": "14107:11:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,uint256,bytes memory)"
                      }
                    },
                    "id": 8184,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14107:38:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8185,
                  "nodeType": "ExpressionStatement",
                  "src": "14107:38:26"
                },
                {
                  "expression": {
                    "id": 8190,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 8186,
                        "name": "_totalSupply",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6841,
                        "src": "14155:12:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 8188,
                      "indexExpression": {
                        "id": 8187,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8169,
                        "src": "14168:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "14155:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 8189,
                      "name": "amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8171,
                      "src": "14175:6:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14155:26:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8191,
                  "nodeType": "ExpressionStatement",
                  "src": "14155:26:26"
                }
              ]
            },
            "documentation": {
              "id": 8165,
              "nodeType": "StructuredDocumentation",
              "src": "13943:44:26",
              "text": " @dev See {ERC1155-_mint}."
            },
            "id": 8193,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mint",
            "nameLocation": "14001:5:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8175,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14088:8:26"
            },
            "parameters": {
              "id": 8174,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8167,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "14015:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8193,
                  "src": "14007:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8166,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14007:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8169,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "14032:2:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8193,
                  "src": "14024:10:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8168,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14024:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8171,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "14044:6:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8193,
                  "src": "14036:14:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8170,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14036:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8173,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "14065:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8193,
                  "src": "14052:17:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 8172,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "14052:5:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14006:64:26"
            },
            "returnParameters": {
              "id": 8176,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14097:0:26"
            },
            "scope": 8327,
            "src": "13992:196:26",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              19271
            ],
            "body": {
              "id": 8240,
              "nodeType": "Block",
              "src": "14373:186:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8211,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8196,
                        "src": "14400:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 8212,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8199,
                        "src": "14404:3:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 8213,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8202,
                        "src": "14409:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 8214,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8204,
                        "src": "14418:4:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 8208,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14383:5:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155CreatorUpgradeable_$8327_$",
                          "typeString": "type(contract super ERC1155CreatorUpgradeable)"
                        }
                      },
                      "id": 8210,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14389:10:26",
                      "memberName": "_mintBatch",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19271,
                      "src": "14383:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                      }
                    },
                    "id": 8215,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14383:40:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8216,
                  "nodeType": "ExpressionStatement",
                  "src": "14383:40:26"
                },
                {
                  "body": {
                    "id": 8238,
                    "nodeType": "Block",
                    "src": "14463:90:26",
                    "statements": [
                      {
                        "expression": {
                          "id": 8232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 8224,
                              "name": "_totalSupply",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6841,
                              "src": "14477:12:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                "typeString": "mapping(uint256 => uint256)"
                              }
                            },
                            "id": 8228,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 8225,
                                "name": "ids",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8199,
                                "src": "14490:3:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 8227,
                              "indexExpression": {
                                "id": 8226,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8218,
                                "src": "14494:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "14490:6:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "14477:20:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 8229,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8202,
                              "src": "14501:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 8231,
                            "indexExpression": {
                              "id": 8230,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8218,
                              "src": "14509:1:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "14501:10:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14477:34:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8233,
                        "nodeType": "ExpressionStatement",
                        "src": "14477:34:26"
                      },
                      {
                        "id": 8237,
                        "nodeType": "UncheckedBlock",
                        "src": "14525:18:26",
                        "statements": [
                          {
                            "expression": {
                              "id": 8235,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "14537:3:26",
                              "subExpression": {
                                "id": 8234,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8218,
                                "src": "14539:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 8236,
                            "nodeType": "ExpressionStatement",
                            "src": "14537:3:26"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8220,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8218,
                      "src": "14446:1:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 8221,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8199,
                        "src": "14450:3:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 8222,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14454:6:26",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "14450:10:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14446:14:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8239,
                  "initializationExpression": {
                    "assignments": [
                      8218
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 8218,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "14443:1:26",
                        "nodeType": "VariableDeclaration",
                        "scope": 8239,
                        "src": "14438:6:26",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 8217,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "14438:4:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 8219,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "14438:6:26"
                  },
                  "nodeType": "ForStatement",
                  "src": "14433:120:26"
                }
              ]
            },
            "documentation": {
              "id": 8194,
              "nodeType": "StructuredDocumentation",
              "src": "14194:49:26",
              "text": " @dev See {ERC1155-_mintBatch}."
            },
            "id": 8241,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintBatch",
            "nameLocation": "14257:10:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8206,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14364:8:26"
            },
            "parameters": {
              "id": 8205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8196,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "14276:2:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8241,
                  "src": "14268:10:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8195,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14268:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8199,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "14297:3:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8241,
                  "src": "14280:20:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8197,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14280:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8198,
                    "nodeType": "ArrayTypeName",
                    "src": "14280:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8202,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "14319:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8241,
                  "src": "14302:24:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8200,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14302:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8201,
                    "nodeType": "ArrayTypeName",
                    "src": "14302:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8204,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "14341:4:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8241,
                  "src": "14328:17:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 8203,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "14328:5:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14267:79:26"
            },
            "returnParameters": {
              "id": 8207,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14373:0:26"
            },
            "scope": 8327,
            "src": "14248:311:26",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              19376
            ],
            "body": {
              "id": 8266,
              "nodeType": "Block",
              "src": "14700:85:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8255,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8244,
                        "src": "14722:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 8256,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8246,
                        "src": "14731:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 8257,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8248,
                        "src": "14735:6:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 8252,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14710:5:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155CreatorUpgradeable_$8327_$",
                          "typeString": "type(contract super ERC1155CreatorUpgradeable)"
                        }
                      },
                      "id": 8254,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14716:5:26",
                      "memberName": "_burn",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19376,
                      "src": "14710:11:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256,uint256)"
                      }
                    },
                    "id": 8258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14710:32:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8259,
                  "nodeType": "ExpressionStatement",
                  "src": "14710:32:26"
                },
                {
                  "expression": {
                    "id": 8264,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 8260,
                        "name": "_totalSupply",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6841,
                        "src": "14752:12:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 8262,
                      "indexExpression": {
                        "id": 8261,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8246,
                        "src": "14765:2:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "14752:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "id": 8263,
                      "name": "amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8248,
                      "src": "14772:6:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14752:26:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8265,
                  "nodeType": "ExpressionStatement",
                  "src": "14752:26:26"
                }
              ]
            },
            "documentation": {
              "id": 8242,
              "nodeType": "StructuredDocumentation",
              "src": "14565:44:26",
              "text": " @dev See {ERC1155-_burn}."
            },
            "id": 8267,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_burn",
            "nameLocation": "14623:5:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8250,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14691:8:26"
            },
            "parameters": {
              "id": 8249,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8244,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "14637:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8267,
                  "src": "14629:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8243,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14629:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8246,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "14654:2:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8267,
                  "src": "14646:10:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8245,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14646:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8248,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "14666:6:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8267,
                  "src": "14658:14:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8247,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14658:7:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14628:45:26"
            },
            "returnParameters": {
              "id": 8251,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14700:0:26"
            },
            "scope": 8327,
            "src": "14614:171:26",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              19499
            ],
            "body": {
              "id": 8311,
              "nodeType": "Block",
              "src": "14956:185:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8283,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8270,
                        "src": "14983:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 8284,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8273,
                        "src": "14992:3:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 8285,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8276,
                        "src": "14997:7:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      ],
                      "expression": {
                        "id": 8280,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14966:5:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155CreatorUpgradeable_$8327_$",
                          "typeString": "type(contract super ERC1155CreatorUpgradeable)"
                        }
                      },
                      "id": 8282,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14972:10:26",
                      "memberName": "_burnBatch",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19499,
                      "src": "14966:16:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] memory,uint256[] memory)"
                      }
                    },
                    "id": 8286,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14966:39:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8287,
                  "nodeType": "ExpressionStatement",
                  "src": "14966:39:26"
                },
                {
                  "body": {
                    "id": 8309,
                    "nodeType": "Block",
                    "src": "15045:90:26",
                    "statements": [
                      {
                        "expression": {
                          "id": 8303,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 8295,
                              "name": "_totalSupply",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6841,
                              "src": "15059:12:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                "typeString": "mapping(uint256 => uint256)"
                              }
                            },
                            "id": 8299,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 8296,
                                "name": "ids",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8273,
                                "src": "15072:3:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 8298,
                              "indexExpression": {
                                "id": 8297,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8289,
                                "src": "15076:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15072:6:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "15059:20:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "-=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 8300,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8276,
                              "src": "15083:7:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 8302,
                            "indexExpression": {
                              "id": 8301,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8289,
                              "src": "15091:1:26",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15083:10:26",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "15059:34:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8304,
                        "nodeType": "ExpressionStatement",
                        "src": "15059:34:26"
                      },
                      {
                        "id": 8308,
                        "nodeType": "UncheckedBlock",
                        "src": "15107:18:26",
                        "statements": [
                          {
                            "expression": {
                              "id": 8306,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "15119:3:26",
                              "subExpression": {
                                "id": 8305,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8289,
                                "src": "15121:1:26",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 8307,
                            "nodeType": "ExpressionStatement",
                            "src": "15119:3:26"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8291,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8289,
                      "src": "15028:1:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 8292,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8273,
                        "src": "15032:3:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 8293,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "15036:6:26",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "15032:10:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15028:14:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8310,
                  "initializationExpression": {
                    "assignments": [
                      8289
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 8289,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "15025:1:26",
                        "nodeType": "VariableDeclaration",
                        "scope": 8310,
                        "src": "15020:6:26",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 8288,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "15020:4:26",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 8290,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "15020:6:26"
                  },
                  "nodeType": "ForStatement",
                  "src": "15015:120:26"
                }
              ]
            },
            "documentation": {
              "id": 8268,
              "nodeType": "StructuredDocumentation",
              "src": "14791:49:26",
              "text": " @dev See {ERC1155-_burnBatch}."
            },
            "id": 8312,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_burnBatch",
            "nameLocation": "14854:10:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8278,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14947:8:26"
            },
            "parameters": {
              "id": 8277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8270,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "14873:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8312,
                  "src": "14865:15:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8269,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14865:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8273,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "14899:3:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8312,
                  "src": "14882:20:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8271,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14882:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8272,
                    "nodeType": "ArrayTypeName",
                    "src": "14882:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8276,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "14921:7:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8312,
                  "src": "14904:24:26",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8274,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14904:7:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8275,
                    "nodeType": "ArrayTypeName",
                    "src": "14904:9:26",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14864:65:26"
            },
            "returnParameters": {
              "id": 8279,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14956:0:26"
            },
            "scope": 8327,
            "src": "14845:296:26",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15190
            ],
            "body": {
              "id": 8325,
              "nodeType": "Block",
              "src": "15293:51:26",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8322,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8315,
                        "src": "15327:9:26",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 8321,
                      "name": "_setApproveTransferBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13454,
                      "src": "15303:23:26",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 8323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15303:34:26",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8324,
                  "nodeType": "ExpressionStatement",
                  "src": "15303:34:26"
                }
              ]
            },
            "documentation": {
              "id": 8313,
              "nodeType": "StructuredDocumentation",
              "src": "15147:62:26",
              "text": " @dev See {ICreatorCore-setApproveTransfer}."
            },
            "functionSelector": "596798ad",
            "id": 8326,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 8319,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 8318,
                  "name": "adminRequired",
                  "nameLocations": [
                    "15279:13:26"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "15279:13:26"
                },
                "nodeType": "ModifierInvocation",
                "src": "15279:13:26"
              }
            ],
            "name": "setApproveTransfer",
            "nameLocation": "15223:18:26",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8317,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "15270:8:26"
            },
            "parameters": {
              "id": 8316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8315,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "15250:9:26",
                  "nodeType": "VariableDeclaration",
                  "scope": 8326,
                  "src": "15242:17:26",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8314,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15242:7:26",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15241:19:26"
            },
            "returnParameters": {
              "id": 8320,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15293:0:26"
            },
            "scope": 8327,
            "src": "15214:130:26",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 8328,
        "src": "347:14999:26",
        "usedErrors": []
      }
    ],
    "src": "33:15313:26"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.653Z",
  "devdoc": {
    "details": "ERC1155Creator implementation (using transparent upgradeable proxy)",
    "events": {
      "ApprovalForAll(address,address,bool)": {
        "details": "Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`."
      },
      "Initialized(uint8)": {
        "details": "Triggered when the contract has been initialized or reinitialized."
      },
      "TransferBatch(address,address,address,uint256[],uint256[])": {
        "details": "Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers."
      },
      "TransferSingle(address,address,address,uint256,uint256)": {
        "details": "Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`."
      },
      "URI(string,uint256)": {
        "details": "Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}."
      }
    },
    "kind": "dev",
    "methods": {
      "approveAdmin(address)": {
        "details": "See {IAdminControl-approveAdmin}."
      },
      "balanceOf(address,uint256)": {
        "details": "See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address."
      },
      "balanceOfBatch(address[],uint256[])": {
        "details": "See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length."
      },
      "blacklistExtension(address)": {
        "details": "See {ICreatorCore-blacklistExtension}."
      },
      "burn(address,uint256[],uint256[])": {
        "details": "See {IERC1155CreatorCore-burn}."
      },
      "getAdmins()": {
        "details": "See {IAdminControl-getAdmins}."
      },
      "getApproveTransfer()": {
        "details": "See {ICreatorCore-getApproveTransfer}."
      },
      "getExtensions()": {
        "details": "See {ICreatorCore-getExtensions}."
      },
      "getFeeBps(uint256)": {
        "details": "See {ICreatorCore-getFeeBps}."
      },
      "getFeeRecipients(uint256)": {
        "details": "See {ICreatorCore-getFeeRecipients}."
      },
      "getFees(uint256)": {
        "details": "See {ICreatorCore-getFees}."
      },
      "getRoyalties(uint256)": {
        "details": "See {ICreatorCore-getRoyalties}."
      },
      "isAdmin(address)": {
        "details": "See {IAdminControl-isAdmin}."
      },
      "isApprovedForAll(address,address)": {
        "details": "See {IERC1155-isApprovedForAll}."
      },
      "mintBaseExisting(address[],uint256[],uint256[])": {
        "details": "See {IERC1155CreatorCore-mintBaseExisting}."
      },
      "mintBaseNew(address[],uint256[],string[])": {
        "details": "See {IERC1155CreatorCore-mintBaseNew}."
      },
      "mintExtensionExisting(address[],uint256[],uint256[])": {
        "details": "See {IERC1155CreatorCore-mintExtensionExisting}."
      },
      "mintExtensionNew(address[],uint256[],string[])": {
        "details": "See {IERC1155CreatorCore-mintExtensionNew}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "registerExtension(address,string)": {
        "details": "See {ICreatorCore-registerExtension}."
      },
      "registerExtension(address,string,bool)": {
        "details": "See {ICreatorCore-registerExtension}."
      },
      "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}."
      },
      "royaltyInfo(uint256,uint256)": {
        "details": "See {ICreatorCore-royaltyInfo}."
      },
      "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": {
        "details": "See {IERC1155-safeBatchTransferFrom}."
      },
      "safeTransferFrom(address,address,uint256,uint256,bytes)": {
        "details": "See {IERC1155-safeTransferFrom}."
      },
      "setApprovalForAll(address,bool)": {
        "details": "See {IERC1155-setApprovalForAll}."
      },
      "setApproveTransfer(address)": {
        "details": "See {ICreatorCore-setApproveTransfer}."
      },
      "setApproveTransferExtension(bool)": {
        "details": "See {ICreatorCore-setApproveTransferExtension}."
      },
      "setBaseTokenURI(string)": {
        "details": "See {ICreatorCore-setBaseTokenURI}."
      },
      "setBaseTokenURIExtension(string)": {
        "details": "See {ICreatorCore-setBaseTokenURIExtension}."
      },
      "setBaseTokenURIExtension(string,bool)": {
        "details": "See {ICreatorCore-setBaseTokenURIExtension}."
      },
      "setMintPermissions(address,address)": {
        "details": "See {ICreatorCore-setMintPermissions}."
      },
      "setRoyalties(address[],uint256[])": {
        "details": "See {ICreatorCore-setRoyalties}."
      },
      "setRoyalties(uint256,address[],uint256[])": {
        "details": "See {ICreatorCore-setRoyalties}."
      },
      "setRoyaltiesExtension(address,address[],uint256[])": {
        "details": "See {ICreatorCore-setRoyaltiesExtension}."
      },
      "setTokenURI(uint256,string)": {
        "details": "See {ICreatorCore-setTokenURI}."
      },
      "setTokenURI(uint256[],string[])": {
        "details": "See {ICreatorCore-setTokenURI}."
      },
      "setTokenURIExtension(uint256,string)": {
        "details": "See {ICreatorCore-setTokenURIExtension}."
      },
      "setTokenURIExtension(uint256[],string[])": {
        "details": "See {ICreatorCore-setTokenURIExtension}."
      },
      "setTokenURIPrefix(string)": {
        "details": "See {ICreatorCore-setTokenURIPrefix}."
      },
      "setTokenURIPrefixExtension(string)": {
        "details": "See {ICreatorCore-setTokenURIPrefixExtension}."
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}."
      },
      "tokenExtension(uint256)": {
        "details": "See {IERC1155CreatorCore-tokenExtension}."
      },
      "totalSupply(uint256)": {
        "details": "Total amount of tokens in with a given id."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      },
      "unregisterExtension(address)": {
        "details": "See {ICreatorCore-unregisterExtension}."
      },
      "uri(uint256)": {
        "details": "See {IERC1155MetadataURI-uri}."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "initialize(string,string)": {
        "notice": "Initializer"
      }
    },
    "version": 1
  }
}