{
  "contractName": "ERC721CreatorUpgradeable",
  "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": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "approved",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "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": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "approveAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "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": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getApproved",
      "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": "owner",
          "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": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "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": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "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": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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"
        }
      ],
      "name": "mintBase",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "mintBase",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintBaseBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint16",
          "name": "count",
          "type": "uint16"
        }
      ],
      "name": "mintBaseBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "mintExtension",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint80",
          "name": "data",
          "type": "uint80"
        }
      ],
      "name": "mintExtension",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "mintExtension",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintExtensionBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint80[]",
          "name": "data",
          "type": "uint80[]"
        }
      ],
      "name": "mintExtensionBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint16",
          "name": "count",
          "type": "uint16"
        }
      ],
      "name": "mintExtensionBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "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": "uint256",
          "name": "tokenId",
          "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": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "setApproveTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenData",
      "outputs": [
        {
          "internalType": "uint80",
          "name": "",
          "type": "uint80"
        }
      ],
      "stateMutability": "view",
      "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\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"approveAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"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\":\"uint256\",\"name\":\"tokenId\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"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\":\"owner\",\"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\"}],\"name\":\"mintBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"mintBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintBaseBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"count\",\"type\":\"uint16\"}],\"name\":\"mintBaseBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mintExtension\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint80\",\"name\":\"data\",\"type\":\"uint80\"}],\"name\":\"mintExtension\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"mintExtension\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintExtensionBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint80[]\",\"name\":\"data\",\"type\":\"uint80[]\"}],\"name\":\"mintExtensionBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"count\",\"type\":\"uint16\"}],\"name\":\"mintExtensionBatch\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"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\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"tokenData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"\",\"type\":\"uint80\"}],\"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\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"details\":\"ERC721Creator implementation (using transparent upgradeable proxy)\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"approveAdmin(address)\":{\"details\":\"See {IAdminControl-approveAdmin}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"blacklistExtension(address)\":{\"details\":\"See {ICreatorCore-blacklistExtension}.\"},\"burn(uint256)\":{\"details\":\"See {IERC721CreatorCore-burn}.\"},\"getAdmins()\":{\"details\":\"See {IAdminControl-getAdmins}.\"},\"getApproveTransfer()\":{\"details\":\"See {ICreatorCore-getApproveTransfer}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"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 {IERC721-isApprovedForAll}.\"},\"mintBase(address)\":{\"details\":\"See {IERC721CreatorCore-mintBase}.\"},\"mintBase(address,string)\":{\"details\":\"See {IERC721CreatorCore-mintBase}.\"},\"mintBaseBatch(address,string[])\":{\"details\":\"See {IERC721CreatorCore-mintBaseBatch}.\"},\"mintBaseBatch(address,uint16)\":{\"details\":\"See {IERC721CreatorCore-mintBaseBatch}.\"},\"mintExtension(address)\":{\"details\":\"See {IERC721CreatorCore-mintExtension}.\"},\"mintExtension(address,string)\":{\"details\":\"See {IERC721CreatorCore-mintExtension}.\"},\"mintExtension(address,uint80)\":{\"details\":\"See {IERC721CreatorCore-mintExtension}.\"},\"mintExtensionBatch(address,string[])\":{\"details\":\"See {IERC721CreatorCore-mintExtensionBatch}.\"},\"mintExtensionBatch(address,uint16)\":{\"details\":\"See {IERC721CreatorCore-mintExtensionBatch}.\"},\"mintExtensionBatch(address,uint80[])\":{\"details\":\"See {IERC721CreatorCore-mintExtensionBatch}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"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}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-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}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenData(uint256)\":{\"details\":\"See {IERC721CreatorCore-tokenData}.\"},\"tokenExtension(uint256)\":{\"details\":\"See {IERC721CreatorCore-tokenExtension}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"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}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(string,string)\":{\"notice\":\"Initializer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ERC721CreatorUpgradeable.sol\":\"ERC721CreatorUpgradeable\"},\"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/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@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/ERC721CreatorUpgradeable.sol\":{\"keccak256\":\"0x0a5bfe6791df97f3df014e11a779b153b5d87d167615b2887e5f23d3b2812ea8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf916a64b7b824a493ad90582ce06b2cee0569c94c3934bd24fc41372e4d5c4\",\"dweb:/ipfs/QmRDpDLEx7XMUBE5MEfzoA37YHe21N2dB24Syfcgu8MPyF\"]},\"project:/contracts/core/CreatorCore.sol\":{\"keccak256\":\"0x6e8b20c32d6122ed1d23af683260ea242f1197dc95b063b63ccfac5b90e65f31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bffa862c93d614e9d5727ff595cb8595dbb9eae43bfdf06f65c7331aec09c268\",\"dweb:/ipfs/QmUsPC55S2vdfQWL3HQTYDz66yRFhdbPGCjr1NYyxBT83P\"]},\"project:/contracts/core/ERC721CreatorCore.sol\":{\"keccak256\":\"0x6927d1aba334eb5502e3a4a9d573d2cf10323bb9dd3f9a004f9f0831733cb00a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce20d2dbd6f46a443ac666424c2c03c4d1f9b52295fca91b830649853314515\",\"dweb:/ipfs/QmRxLCpSFHCevQLAioPopYfxifjtMoNST5pM56yY1HnxdQ\"]},\"project:/contracts/core/ICreatorCore.sol\":{\"keccak256\":\"0x6bdcb757953594d3a259f1d68ec3d208ca42dba02115f08a6e32e2936ccb0349\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd1853dabcd57eb9b735b3991cf59259cd28cdeca1353495b5c59dc0db2d85df\",\"dweb:/ipfs/QmfJLFZ7RoMvdR7kJLR7QmqreS1x5VNJSa7xvjVsC4mXte\"]},\"project:/contracts/core/IERC721CreatorCore.sol\":{\"keccak256\":\"0xb168262afd1960a48d9c2088b7c24df3c0e5e190d2e2451e8af38983cf713bad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b8e621daf8a34967aa796482e02521390328f84a130f064e67aafc1b11748e5\",\"dweb:/ipfs/QmRC4suf2UXxkfy9NazSHwVAHLFeuzqAuQPmZrf1KQfX7f\"]},\"project:/contracts/extensions/ERC721/IERC721CreatorExtensionApproveTransfer.sol\":{\"keccak256\":\"0xf775f61378aaabce44f639c5ba3978dcd891a3a25379a9465a161edd5f2ca486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67ca952670ffe8bc506b8a59cd5f06b5d6524946013e72023ed53a7d3f97a4f\",\"dweb:/ipfs/QmUXt1nMDmCeHN8SuHDUUZdMbBvZsVJHeborAu1pWtFgHS\"]},\"project:/contracts/extensions/ERC721/IERC721CreatorExtensionBurnable.sol\":{\"keccak256\":\"0xfe990176cd9da70d2241bb28b07155555bc1258350a809dc45165b4ad540d6c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7629f325fcd4348ffeca7e4abba3517f8767736c0545f6deb9bf71a361ccdc0c\",\"dweb:/ipfs/QmQGx2M1nkQGJXU8tVE56xiP8pgq7dQxqrnWPDjMDzstuH\"]},\"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/ERC721/IERC721CreatorMintPermissions.sol\":{\"keccak256\":\"0x9df5ea824141ac0225b240688d6b964d31e4b525c221e4e02b93955500996115\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ac75988c6c21b64e7a5da269879c23c7f818c8c47962b7e74a2af25c7b78008\",\"dweb:/ipfs/QmRv7RPHRThCPtCnje4nrsCGY6v9otDbYXnexmpNubrUfN\"]},\"project:/contracts/token/ERC721/ERC721Core.sol\":{\"keccak256\":\"0x9e8b158cc5525ad454a540fd6a933a2a1f4d831581a69640f57434b99070e523\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b808dc37f808fc11531401948c84de89172b7a21cf853484e707c81f514b95d0\",\"dweb:/ipfs/QmfVLezwsANYfiTeEgDV1yyvjiJWz7T3AeHUow5hhFP9iV\"]},\"project:/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x0399818d4590e190b188cd09a5cf621479f7a61fa38aab2829f745c8be035a41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76fbc0c96f605010b74b8a4d753fc6bc403399965baff0799a5273cfaeb571e5\",\"dweb:/ipfs/QmPMDrYcHXHJ1B57rULFeHwmibP17gtcEgAjbM9Wn9VzpD\"]}},\"version\":1}",
  "bytecode": "0x60806040526000606e553480156200001657600080fd5b506001606555620000266200002c565b620000ee565b600054610100900460ff1615620000995760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000ec576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61542d80620000fe6000396000f3fe608060405234801561001057600080fd5b50600436106102ef5760003560e01c80636d73e66911610194578063b0fe87c9116100ea578063b0fe87c91461066e578063b4b5b48f14610681578063b88d4fde146106cc578063b9c4d9fb146106df578063bb3bafd6146106ff578063c87b56dd14610720578063ce8aee9d14610733578063d397371914610746578063d5a06d4c146106ff578063e00aab4b14610759578063e92a89f61461076c578063e985e9c51461077f578063f0cdc49914610792578063f2fde38b146107a5578063fe2e1f58146107b8578063ffa1ad74146107cb57600080fd5b80636d73e6691461057d57806370a0823114610590578063715018a6146105a357806372ff03d3146105ab5780637884af44146105be5780637aa15f16146105d157806382dcc0c8146105e457806383b7db63146105f75780638da5cb5b146105ff57806395d89b411461060757806399e0dd7c1461060f578063a22cb46514610622578063aafb2d4414610635578063ac0c8cfa14610648578063ad2d0ddd1461065b57600080fd5b806330176e131161024957806330176e131461045e5780633071a0f91461047157806331ae450b14610484578063332dd1ae1461049957806338e52e78146104ac5780633e6134b8146104bf5780633f0f37f6146104d25780634278330e146104e557806342842e0e146104f857806342966c681461050b5780634cd88b761461051e578063596798ad1461053157806361e5bc6b146105445780636352211e1461055757806366d1e9d01461056a57600080fd5b806301ffc9a7146102f457806302e7afb71461031c57806306fdde0314610331578063081812fc14610346578063095ea7b3146103665780630ebd4c7f14610379578063162094c41461039957806320e4afe2146103ac57806322f374d0146103bf578063239be317146103d057806323b872dd146103e357806324d7806c146103f65780632928ca58146104095780632a55205a1461042a5780632d3456701461044b575b600080fd5b610307610302366004614213565b6107d3565b60405190151581526020015b60405180910390f35b61032f61032a366004614245565b610802565b005b610339610857565b60405161031391906142b2565b6103596103543660046142c5565b6108e9565b60405161031391906142de565b61032f6103743660046142f2565b610910565b61038c6103873660046142c5565b610a25565b6040516103139190614359565b61032f6103a73660046143ad565b610a55565b61032f6103ba36600461443c565b610aa0565b606f546001600160a01b0316610359565b6103596103de3660046142c5565b610b19565b61032f6103f13660046144b5565b610bc7565b610307610404366004614245565b610bf8565b61041c610417366004614245565b610c27565b604051908152602001610313565b61043d6104383660046144f6565b610c61565b604051610313929190614518565b61032f610459366004614245565b610c9f565b61032f61046c366004614531565b610cfc565b61032f61047f366004614572565b610d46565b61048c610d9c565b60405161031391906145ad565b61032f6104a73660046145fa565b610e4a565b61038c6104ba366004614665565b610e9e565b61032f6104cd366004614531565b610fd2565b61032f6104e03660046146ba565b610fe6565b61038c6104f3366004614665565b61103b565b61032f6105063660046144b5565b611134565b61032f6105193660046142c5565b61114f565b61032f61052c3660046147ec565b6111e7565b61032f61053f366004614245565b61130a565b61032f6105523660046145fa565b611353565b6103596105653660046142c5565b6113d2565b61032f610578366004614531565b611407565b61032f61058b366004614245565b611419565b61041c61059e366004614245565b611471565b61032f6114f7565b61041c6105b9366004614245565b61150b565b61041c6105cc366004614572565b611570565b61038c6105df366004614665565b611606565b61032f6105f236600461484f565b611760565b61048c611773565b610359611813565b610339611822565b61032f61061d366004614531565b611831565b61032f6106303660046148a5565b61187b565b61032f6106433660046145fa565b611886565b61032f6106563660046148de565b61193d565b61038c6106693660046148fb565b61194f565b61032f61067c366004614930565b611a70565b6106b461068f3660046142c5565b6000908152606a6020526040902054600160a01b900460101c6001600160501b031690565b6040516001600160501b039091168152602001610313565b61032f6106da36600461496f565b611abd565b6106f26106ed3660046142c5565b611aef565b6040516103139190614a27565b61071261070d3660046142c5565b611b1f565b604051610313929190614a3a565b61033961072e3660046142c5565b611b59565b61032f610741366004614245565b611b89565b61041c610754366004614a7f565b611bd2565b61038c6107673660046148fb565b611c0c565b61032f61077a3660046143ad565b611ceb565b61030761078d366004614ab4565b611cfe565b61032f6107a0366004614ab4565b611d2c565b61032f6107b3366004614245565b611d76565b61041c6107c6366004614572565b611dec565b61041c600381565b60006107de82611e40565b806107ed57506107ed82611e80565b806107fc57506107fc82611ebb565b92915050565b3361080b611813565b6001600160a01b031614806108265750610826606633611ef0565b61084b5760405162461bcd60e51b815260040161084290614ae2565b60405180910390fd5b61085481611f12565b50565b60606068805461086690614b26565b80601f016020809104026020016040519081016040528092919081815260200182805461089290614b26565b80156108df5780601f106108b4576101008083540402835291602001916108df565b820191906000526020600020905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b60006108f48261201e565b506000908152606c60205260409020546001600160a01b031690565b600061091b826113d2565b9050806001600160a01b0316836001600160a01b0316036109885760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610842565b336001600160a01b03821614806109a457506109a48133611cfe565b610a165760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610842565b610a208383612043565b505050565b6060610a30826120b1565b610a4c5760405162461bcd60e51b815260040161084290614b5a565b6107fc826120ce565b33610a5e611813565b6001600160a01b03161480610a795750610a79606633611ef0565b610a955760405162461bcd60e51b815260040161084290614ae2565b610a208383836120d9565b33610aa9611813565b6001600160a01b03161480610ac45750610ac4606633611ef0565b610ae05760405162461bcd60e51b815260040161084290614ae2565b610ae9856120b1565b610b055760405162461bcd60e51b815260040161084290614b5a565b610b12858585858561213d565b5050505050565b6000610b24826120b1565b610b405760405162461bcd60e51b815260040161084290614b5a565b610b49826121c4565b90506001600160a01b038116610b9a5760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b6044820152606401610842565b610ba5607282611ef0565b15610bc25760405162461bcd60e51b815260040161084290614b85565b919050565b610bd1338261221a565b610bed5760405162461bcd60e51b815260040161084290614bb4565b610a20838383612279565b6000816001600160a01b0316610c0c611813565b6001600160a01b031614806107fc57506107fc606683611ef0565b6000610c31612406565b610c3961245f565b610c5582604051806020016040528060008152506000806124b5565b9050610bc26001606555565b600080610c6d846120b1565b610c895760405162461bcd60e51b815260040161084290614b5a565b610c93848461253e565b915091505b9250929050565b610ca7612614565b610cb2606682611ef0565b156108545760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a3610cf8606682612673565b5050565b33610d05611813565b6001600160a01b03161480610d205750610d20606633611ef0565b610d3c5760405162461bcd60e51b815260040161084290614ae2565b610cf88282612688565b33610d4f611813565b6001600160a01b03161480610d6a5750610d6a606633611ef0565b610d865760405162461bcd60e51b815260040161084290614ae2565b610d8f836126bd565b610a2083838360006126e5565b6060610da860666127e2565b6001600160401b03811115610dbf57610dbf614721565b604051908082528060200260200182016040528015610de8578160200160208202803683370190505b50905060005b610df860666127e2565b811015610e4657610e0a6066826127ec565b828281518110610e1c57610e1c614c01565b6001600160a01b039092166020928302919091019091015280610e3e81614c2d565b915050610dee565b5090565b33610e53611813565b6001600160a01b03161480610e6e5750610e6e606633611ef0565b610e8a5760405162461bcd60e51b815260040161084290614ae2565b610e986000858585856127f8565b50505050565b6060610ea8612406565b610eb061245f565b816001600160401b03811115610ec857610ec8614721565b604051908082528060200260200182016040528015610ef1578160200160208202803683370190505b5090506000606e546001610f059190614c46565b905083839050606e6000828254610f1c9190614c46565b90915550600090505b83811015610fbf57610f9a86868684818110610f4357610f43614c01565b9050602002810190610f559190614c59565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250610f95915086905087614c46565b6124b5565b838281518110610fac57610fac614c01565b6020908102919091010152600101610f25565b5050610fcb6001606555565b9392505050565b610fda61245f565b610cf8828260006128e5565b33610fef611813565b6001600160a01b0316148061100a575061100a606633611ef0565b6110265760405162461bcd60e51b815260040161084290614ae2565b61102f846126bd565b610e98848484846126e5565b6060611045612406565b61104d61245f565b816001600160401b0381111561106557611065614721565b60405190808252806020026020018201604052801561108e578160200160208202803683370190505b5090506000606e5460016110a29190614c46565b905083839050606e60008282546110b99190614c46565b90915550600090505b83811015610fbf5761110f86604051806020016040528060008152508787858181106110f0576110f0614c01565b90506020020160208101906111059190614c9f565b610f958587614c46565b83828151811061112157611121614c01565b60209081029190910101526001016110c2565b610a2083838360405180602001604052806000815250611abd565b611157612406565b611161338261221a565b6111ad5760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564006044820152606401610842565b60006111b8826113d2565b905060006111c5836121c4565b90506111d083612922565b6111db8284836129ca565b50506108546001606555565b600054610100900460ff16158080156112075750600054600160ff909116105b80611228575061121630612a87565b158015611228575060005460ff166001145b61128b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610842565b6000805460ff1916600117905580156112ae576000805461ff0019166101001790555b6112b88383612a96565b6112c0612ac7565b8015610a20576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b33611313611813565b6001600160a01b0316148061132e575061132e606633611ef0565b61134a5760405162461bcd60e51b815260040161084290614ae2565b61085481612af6565b61135b61245f565b82811461137a5760405162461bcd60e51b815260040161084290614cba565b60005b83811015610b12576113ca85858381811061139a5761139a614c01565b905060200201358484848181106113b3576113b3614c01565b90506020028101906113c59190614c59565b612b4c565b60010161137d565b6000818152606a60205260408120546001600160a01b0316806107fc5760405162461bcd60e51b815260040161084290614ce1565b61140f61245f565b610cf88282612b56565b611421612614565b61142c606682611ef0565b6108545760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a3610cf8606682612b70565b60006001600160a01b0382166114db5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610842565b506001600160a01b03166000908152606b602052604090205490565b6114ff612614565b6115096000612b85565b565b6000611515612406565b3361151e611813565b6001600160a01b031614806115395750611539606633611ef0565b6115555760405162461bcd60e51b815260040161084290614ae2565b610c5582604051806020016040528060008152506000612bd7565b600061157a612406565b33611583611813565b6001600160a01b0316148061159e575061159e606633611ef0565b6115ba5760405162461bcd60e51b815260040161084290614ae2565b6115fa8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250612bd7915050565b9050610fcb6001606555565b6060611610612406565b33611619611813565b6001600160a01b031614806116345750611634606633611ef0565b6116505760405162461bcd60e51b815260040161084290614ae2565b816001600160401b0381111561166857611668614721565b604051908082528060200260200182016040528015611691578160200160208202803683370190505b5090506000606e5460016116a59190614c46565b905083839050606e60008282546116bc9190614c46565b90915550600090505b83811015610fbf5761173b868686848181106116e3576116e3614c01565b90506020028101906116f59190614c59565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117369250869150879050614c46565b612bd7565b83828151811061174d5761174d614c01565b60209081029190910101526001016116c5565b61176861245f565b610a208383836128e5565b606061177f60706127e2565b6001600160401b0381111561179657611796614721565b6040519080825280602002602001820160405280156117bf578160200160208202803683370190505b50905060005b6117cf60706127e2565b811015610e46576117e16070826127ec565b8282815181106117f3576117f3614c01565b6001600160a01b03909216602092830291909101909101526001016117c5565b6033546001600160a01b031690565b60606069805461086690614b26565b3361183a611813565b6001600160a01b031614806118555750611855606633611ef0565b6118715760405162461bcd60e51b815260040161084290614ae2565b610cf88282612c2e565b610cf8338383612c63565b3361188f611813565b6001600160a01b031614806118aa57506118aa606633611ef0565b6118c65760405162461bcd60e51b815260040161084290614ae2565b8281146118e55760405162461bcd60e51b815260040161084290614cba565b60005b83811015610b125761193585858381811061190557611905614c01565b9050602002013584848481811061191e5761191e614c01565b90506020028101906119309190614c59565b6120d9565b6001016118e8565b61194561245f565b6108543382612d2d565b6060611959612406565b33611962611813565b6001600160a01b0316148061197d575061197d606633611ef0565b6119995760405162461bcd60e51b815260040161084290614ae2565b8161ffff166001600160401b038111156119b5576119b5614721565b6040519080825280602002602001820160405280156119de578160200160208202803683370190505b5090506000606e5460016119f29190614c46565b90508261ffff16606e6000828254611a0a9190614c46565b90915550600090505b8361ffff16811015611a6457611a3f856040518060200160405280600081525083856117369190614c46565b838281518110611a5157611a51614c01565b6020908102919091010152600101611a13565b50506107fc6001606555565b33611a79611813565b6001600160a01b03161480611a945750611a94606633611ef0565b611ab05760405162461bcd60e51b815260040161084290614ae2565b610b1285858585856127f8565b611ac7338361221a565b611ae35760405162461bcd60e51b815260040161084290614bb4565b610e9884848484612da2565b6060611afa826120b1565b611b165760405162461bcd60e51b815260040161084290614b5a565b6107fc82612dd5565b606080611b2b836120b1565b611b475760405162461bcd60e51b815260040161084290614b5a565b611b5083612ddc565b91509150915091565b6060611b64826120b1565b611b805760405162461bcd60e51b815260040161084290614b5a565b6107fc8261318a565b33611b92611813565b6001600160a01b03161480611bad5750611bad606633611ef0565b611bc95760405162461bcd60e51b815260040161084290614ae2565b61085481613426565b6000611bdc612406565b611be461245f565b611c0083604051806020016040528060008152508460006124b5565b90506107fc6001606555565b6060611c16612406565b611c1e61245f565b8161ffff166001600160401b03811115611c3a57611c3a614721565b604051908082528060200260200182016040528015611c63578160200160208202803683370190505b5090506000606e546001611c779190614c46565b90508261ffff16606e6000828254611c8f9190614c46565b90915550600090505b8361ffff16811015611a6457611cc6856040518060200160405280600081525060008486610f959190614c46565b838281518110611cd857611cd8614c01565b6020908102919091010152600101611c98565b611cf361245f565b610a20838383612b4c565b6001600160a01b039182166000908152606d6020908152604080832093909416825291909152205460ff1690565b33611d35611813565b6001600160a01b03161480611d505750611d50606633611ef0565b611d6c5760405162461bcd60e51b815260040161084290614ae2565b610cf88282613467565b611d7e612614565b6001600160a01b038116611de35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610842565b61085481612b85565b6000611df6612406565b611dfe61245f565b6115fa8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508291506124b59050565b60006001600160e01b0319821663b5d2729f60e01b1480611e7157506001600160e01b03198216639088c20760e01b145b806107fc57506107fc8261359c565b60006001600160e01b031982166380ac58cd60e01b14806107ed57506001600160e01b03198216635b5e139f60e01b14806107fc57506107fc825b60006001600160e01b03198216632a9f3abf60e11b14806107fc57506301ffc9a760e01b6001600160e01b03198316146107fc565b6001600160a01b03811660009081526001830160205260408120541515610fcb565b6001600160a01b03811615801590611f3357506001600160a01b0381163014155b611f7b5760405162461bcd60e51b815260206004820152601960248201527821b0b73737ba10313630b1b5b634b9ba103cb7bab939b2b63360391b6044820152606401610842565b611f86607082611ef0565b15611fce5760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3611fcc607082612673565b505b611fd9607282611ef0565b6108545760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a3610cf8607282612b70565b612027816120b1565b6108545760405162461bcd60e51b815260040161084290614ce1565b6000818152606c6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612078826113d2565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000908152606a60205260409020546001600160a01b0316151590565b6060610fcb82612ddc565b6000831180156120eb5750606e548311155b8015612108575060006120fd846121c4565b6001600160a01b0316145b6121245760405162461bcd60e51b815260040161084290614d13565b6000838152607760205260409020610e98828483614d95565b6121498484848461364d565b600085815260796020526040812061216091614171565b61217f84848484607960008b81526020019081526020016000206136f2565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee858585856040516121b59493929190614e4e565b60405180910390a25050505050565b6000818152606a6020526040812054600160a01b90046001600160601b0381169061ffff1682036121f85750600092915050565b61ffff166000908152607e60205260409020546001600160a01b031692915050565b600080612226836113d2565b9050806001600160a01b0316846001600160a01b0316148061224d575061224d8185611cfe565b806122715750836001600160a01b0316612266846108e9565b6001600160a01b0316145b949350505050565b6000818152606a60209081526040918290208251808401909352546001600160a01b03808216808552600160a01b9092046001600160601b03169284019290925290851681146123195760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610842565b6001600160a01b03841661237b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610842565b602082015161238c868686846137ad565b612397600085612043565b6001600160a01b038087166000818152606b60209081526040808320805460001901905593891680835284832080546001019055888352606a90915283822080546001600160a01b031916821790559251879392916000805160206153d883398151915291a45b505050505050565b6002606554036124585760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610842565b6002606555565b61246a607033611ef0565b6115095760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba103132903932b3b4b9ba32b932b21032bc3a32b739b4b7b760211b6044820152606401610842565b6000816000036124d857606e600081546124ce90614c2d565b90915550606e5491505b6124e285836137b9565b336000908152607d6020526040902054612515908690849061ffff16601087901b69ffffffffffffffff0000161761384d565b8351156125365760008281526077602052604090206125348582614ecc565b505b509392505050565b60008060008061254d86612ddc565b915091506001825111156125a25760405162461bcd60e51b815260206004820152601c60248201527b26b7b932903a3430b71018903937bcb0b63a3c903932b1b2b4bb32b960211b6044820152606401610842565b81516000036125b957306000935093505050610c98565b816000815181106125cc576125cc614c01565b602002602001015161271086836000815181106125eb576125eb614c01565b60200260200101516125fd9190614f85565b6126079190614f9c565b9350935050509250929050565b3361261d611813565b6001600160a01b0316146115095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610842565b6000610fcb836001600160a01b038416613868565b6000805260746020527fccdf39d850e26d5964b24c5391eecfa7a13a375488d6de2101d279419f39a537610a20828483614d95565b6126c8607282611ef0565b156108545760405162461bcd60e51b815260040161084290614b85565b607c5461ffff908116106127315760405162461bcd60e51b8152602060048201526013602482015272546f6f206d616e7920657874656e73696f6e7360681b6044820152606401610842565b6001600160a01b0384166000908152607d602052604081205461ffff1690036127d657607c80546000906127689061ffff16614fbe565b82546101009290920a61ffff818102199093169183160217909155607c80546001600160a01b0387166000818152607d60209081526040808320805495881661ffff199096169590951790945593549094168452607e90925290912080546001600160a01b03191690911790555b610e988484848461395b565b60006107fc825490565b6000610fcb8383613a4c565b6128048484848461364d565b6001600160a01b038516600090815260786020526040812061282591614171565b61285684848484607860008b6001600160a01b03166001600160a01b031681526020019081526020016000206136f2565b6001600160a01b0385166128a6577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b848484846040516128999493929190614e4e565b60405180910390a1610b12565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f858585856040516121b59493929190614e4e565b3360009081526074602052604090206128ff838583614d95565b50336000908152607560205260409020805460ff19169115159190911790555050565b6000818152606a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201839052909290919061297290839086846137ad565b61297d600085612043565b6001600160a01b0382166000818152606b602090815260408083208054600019019055878352606a909152808220829055518692906000805160206153d8833981519152908390a4610e98565b6001600160a01b03811615612a50576129ea816311686e4b60e21b613a76565b15612a50576040516311686e4b60e21b81526001600160a01b038216906345a1b92c90612a1d9086908690600401614518565b600060405180830381600087803b158015612a3757600080fd5b505af1158015612a4b573d6000803e3d6000fd5b505050505b60008281526077602052604090208054612a6990614b26565b159050610a20576000828152607760205260408120610a209161418f565b6001600160a01b03163b151590565b600054610100900460ff16612abd5760405162461bcd60e51b815260040161084290614fdf565b610cf88282613a92565b600054610100900460ff16612aee5760405162461bcd60e51b815260040161084290614fdf565b611509613ad2565b606f80546001600160a01b0319166001600160a01b0383161790556040517f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f90612b419083906142de565b60405180910390a150565b336120fd846121c4565b336000908152607660205260409020610a20828483614d95565b6000610fcb836001600160a01b038416613b02565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003612bfa57606e60008154612bf090614c2d565b90915550606e5491505b612c068483600061384d565b825115612c27576000828152607760205260409020612c258482614ecc565b505b5092915050565b6000805260766020527fafbc767fed27552cbeceb3d11150dacedabc53b0cc52ac5aa6285a747a181958610a20828483614d95565b816001600160a01b0316836001600160a01b031603612cc05760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610842565b6001600160a01b038381166000818152606d6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612d3e826345ffcdad60e01b613a76565b15610cf8576001600160a01b0382166000818152607a6020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b612dad848484612279565b612db984848484613b51565b610e985760405162461bcd60e51b81526004016108429061502a565b6060612c27825b606080600060796000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015612e5e57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612e14565b5050505090508051600003612fab576000612e78856121c4565b90506001600160a01b03811615612fa957612e9a81634e53ee3d60e11b613a76565b15612f2557604051634e53ee3d60e11b81526001600160a01b03821690639ca7dc7a90612ecd9030908990600401614518565b600060405180830381865afa158015612eea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f129190810190615105565b8151919550935015612f25575050915091565b6001600160a01b038116600090815260786020908152604080832080548251818502810185019093528083529193909284015b82821015612fa257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612f58565b5050505091505b505b805160000361304e576000808052607860209081527f081a134e404bb5bca49ef6b8477e647c1205f6d43d6a20bb692a968ac5aa71448054604080518285028101850190915281815293919290919084015b8282101561304757600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612ffd565b5050505090505b8051156131845780516001600160401b0381111561306e5761306e614721565b604051908082528060200260200182016040528015613097578160200160208202803683370190505b50925080516001600160401b038111156130b3576130b3614721565b6040519080825280602002602001820160405280156130dc578160200160208202803683370190505b50915060005b8151811015613182578181815181106130fd576130fd614c01565b60200260200101516000015184828151811061311b5761311b614c01565b60200260200101906001600160a01b031690816001600160a01b03168152505081818151811061314d5761314d614c01565b60200260200101516020015161ffff1683828151811061316f5761316f614c01565b60209081029190910101526001016130e2565b505b50915091565b606060008211801561319e5750606e548211155b6131ba5760405162461bcd60e51b815260040161084290614d13565b60006131c5836121c4565b90506131d2607282611ef0565b156131ef5760405162461bcd60e51b815260040161084290614b85565b6000838152607760205260409020805461320890614b26565b159050613322576001600160a01b0381166000908152607660205260409020805461323290614b26565b159050613283576001600160a01b03811660009081526076602090815260408083208684526077835292819020905161326c939201615232565b604051602081830303815290604052915050919050565b6000838152607760205260409020805461329c90614b26565b80601f01602080910402602001604051908101604052809291908181526020018280546132c890614b26565b80156133155780601f106132ea57610100808354040283529160200191613315565b820191906000526020600020905b8154815290600101906020018083116132f857829003601f168201915b5050505050915050919050565b6133338163e9dc637560e01b613a76565b156133ab5760405163e9dc637560e01b81526001600160a01b0382169063e9dc6375906133669030908790600401614518565b600060405180830381865afa158015613383573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fcb9190810190615247565b6001600160a01b03811660009081526075602052604090205460ff166133fd576001600160a01b03811660009081526074602052604090206133ec84613c56565b60405160200161326c9291906152b4565b6001600160a01b0381166000908152607460205260409020805461329c90614b26565b50919050565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3610cf8607082612673565b613472607083611ef0565b6134be5760405162461bcd60e51b815260206004820152601e60248201527f43726561746f72436f72653a20496e76616c696420657874656e73696f6e00006044820152606401610842565b6001600160a01b03811615806134e057506134e081631e05385b60e31b613a76565b61351e5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610842565b6001600160a01b038281166000908152607b6020526040902054811690821614610cf8576001600160a01b038281166000818152607b602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b60006001600160e01b031982166314d9799760e21b14806135cd57506001600160e01b031982166328f10a2160e01b145b806135dc57506135dc82611e80565b806135f757506001600160e01b03198216635d9dd7eb60e11b145b8061361257506001600160e01b03198216632dde656160e21b145b8061362d57506001600160e01b031982166335681b5360e21b145b806107fc57506001600160e01b0319821663152a902d60e11b1492915050565b82811461366c5760405162461bcd60e51b815260040161084290614cba565b6000805b828110156136a65783838281811061368a5761368a614c01565b905060200201358261369c9190614c46565b9150600101613670565b506127108110610b125760405162461bcd60e51b8152602060048201526017602482015276496e76616c696420746f74616c20726f79616c7469657360481b6044820152606401610842565b60005b828110156123fe5781604051806040016040528088888581811061371b5761371b614c01565b90506020020160208101906137309190614245565b6001600160a01b0316815260200186868581811061375057613750614c01565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b0390911617919091179055016136f5565b610e9884848484613ce8565b336000908152607b60205260409020546001600160a01b031615610cf857336000818152607b602052604090819020549051631e05385b60e31b815260048101929092526001600160a01b03848116602484015260448301849052169063f029c2d890606401600060405180830381600087803b15801561383957600080fd5b505af11580156123fe573d6000803e3d6000fd5b610a2083838360405180602001604052806000815250613d23565b6000818152600183016020526040812054801561395157600061388c6001836152d9565b85549091506000906138a0906001906152d9565b90508181146139055760008660000182815481106138c0576138c0614c01565b90600052602060002001549050808760000184815481106138e3576138e3614c01565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613916576139166152ec565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107fc565b60009150506107fc565b6001600160a01b03841630148015906139815750613981846001600160a01b0316612a87565b6139b75760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b6044820152606401610842565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b0384166000908152607460205260409020613a10838583614d95565b506001600160a01b0384166000908152607560205260409020805460ff1916821515179055613a40607085612b70565b50610e98846001612d2d565b6000826000018281548110613a6357613a63614c01565b9060005260206000200154905092915050565b6000613a8183613e5f565b8015610fcb5750610fcb8383613e92565b600054610100900460ff16613ab95760405162461bcd60e51b815260040161084290614fdf565b6068613ac58382614ecc565b506069610a208282614ecc565b600054610100900460ff16613af95760405162461bcd60e51b815260040161084290614fdf565b61150933612b85565b6000818152600183016020526040812054613b49575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107fc565b5060006107fc565b6000613b65846001600160a01b0316612a87565b15613c4e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613b9c903390899088908890600401615302565b6020604051808303816000875af1925050508015613bd7575060408051601f3d908101601f19168201909252613bd49181019061533f565b60015b613c34573d808015613c05576040519150601f19603f3d011682016040523d82523d6000602084013e613c0a565b606091505b508051600003613c2c5760405162461bcd60e51b81526004016108429061502a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612271565b506001612271565b60606000613c6383613f1b565b60010190506000816001600160401b03811115613c8257613c82614721565b6040519080825280601f01601f191660200182016040528015613cac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613cb657509392505050565b6001600160a01b03841615610e985761ffff81166000908152607e6020526040902054610e98908590859085906001600160a01b0316613ff1565b6001600160a01b038416613d795760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610842565b613d82836120b1565b15613dce5760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610842565b613ddb60008585856137ad565b6001600160a01b038085166000818152606b6020908152604080832080546001019055805180820182528481526001600160601b038089168285019081528a8652606a9094528285209151935116600160a01b02929095169190911790935591518592906000805160206153d8833981519152908290a4612db96000858584613b51565b6000613e72826301ffc9a760e01b613e92565b80156107fc5750613e8b826001600160e01b0319613e92565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015613f04575060208210155b8015613f105750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310613f5a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310613f84576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310613fa257662386f26fc10000830492506010015b6305f5e1008310613fba576305f5e100830492506008015b6127108310613fce57612710830492506004015b60648310613fe0576064830492506002015b600a83106107fc5760010192915050565b6001600160a01b03841615610e98576001600160a01b0381161580159061403057506001600160a01b0381166000908152607a602052604090205460ff165b156140cb57604051632f3537c560e11b81526001600160a01b03821690635e6a6f8a9061406790339088908890889060040161535c565b6020604051808303816000875af1158015614086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140aa9190615386565b6140c65760405162461bcd60e51b8152600401610842906153a3565b610e98565b606f546001600160a01b031615610e9857606f54604051632f3537c560e11b81526001600160a01b0390911690635e6a6f8a9061411290339088908890889060040161535c565b6020604051808303816000875af1158015614131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141559190615386565b610e985760405162461bcd60e51b8152600401610842906153a3565b508054600082559060005260206000209081019061085491906141c9565b50805461419b90614b26565b6000825580601f106141ab575050565b601f01602090049060005260206000209081019061085491906141e8565b5b80821115610e465780546001600160b01b03191681556001016141ca565b5b80821115610e4657600081556001016141e9565b6001600160e01b03198116811461085457600080fd5b60006020828403121561422557600080fd5b8135610fcb816141fd565b6001600160a01b038116811461085457600080fd5b60006020828403121561425757600080fd5b8135610fcb81614230565b60005b8381101561427d578181015183820152602001614265565b50506000910152565b6000815180845261429e816020860160208601614262565b601f01601f19169290920160200192915050565b602081526000610fcb6020830184614286565b6000602082840312156142d757600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561430557600080fd5b823561431081614230565b946020939093013593505050565b600081518084526020808501945080840160005b8381101561434e57815187529582019590820190600101614332565b509495945050505050565b602081526000610fcb602083018461431e565b60008083601f84011261437e57600080fd5b5081356001600160401b0381111561439557600080fd5b602083019150836020828501011115610c9857600080fd5b6000806000604084860312156143c257600080fd5b8335925060208401356001600160401b038111156143df57600080fd5b6143eb8682870161436c565b9497909650939450505050565b60008083601f84011261440a57600080fd5b5081356001600160401b0381111561442157600080fd5b6020830191508360208260051b8501011115610c9857600080fd5b60008060008060006060868803121561445457600080fd5b8535945060208601356001600160401b038082111561447257600080fd5b61447e89838a016143f8565b9096509450604088013591508082111561449757600080fd5b506144a4888289016143f8565b969995985093965092949392505050565b6000806000606084860312156144ca57600080fd5b83356144d581614230565b925060208401356144e581614230565b929592945050506040919091013590565b6000806040838503121561450957600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561454457600080fd5b82356001600160401b0381111561455a57600080fd5b6145668582860161436c565b90969095509350505050565b60008060006040848603121561458757600080fd5b833561459281614230565b925060208401356001600160401b038111156143df57600080fd5b6020808252825182820181905260009190848201906040850190845b818110156145ee5783516001600160a01b0316835292840192918401916001016145c9565b50909695505050505050565b6000806000806040858703121561461057600080fd5b84356001600160401b038082111561462757600080fd5b614633888389016143f8565b9096509450602087013591508082111561464c57600080fd5b50614659878288016143f8565b95989497509550505050565b60008060006040848603121561467a57600080fd5b833561468581614230565b925060208401356001600160401b038111156146a057600080fd5b6143eb868287016143f8565b801515811461085457600080fd5b600080600080606085870312156146d057600080fd5b84356146db81614230565b935060208501356001600160401b038111156146f657600080fd5b6147028782880161436c565b9094509250506040850135614716816146ac565b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561475f5761475f614721565b604052919050565b60006001600160401b0382111561478057614780614721565b50601f01601f191660200190565b60006147a161479c84614767565b614737565b90508281528383830111156147b557600080fd5b828260208301376000602084830101529392505050565b600082601f8301126147dd57600080fd5b610fcb8383356020850161478e565b600080604083850312156147ff57600080fd5b82356001600160401b038082111561481657600080fd5b614822868387016147cc565b9350602085013591508082111561483857600080fd5b50614845858286016147cc565b9150509250929050565b60008060006040848603121561486457600080fd5b83356001600160401b0381111561487a57600080fd5b6148868682870161436c565b909450925050602084013561489a816146ac565b809150509250925092565b600080604083850312156148b857600080fd5b82356148c381614230565b915060208301356148d3816146ac565b809150509250929050565b6000602082840312156148f057600080fd5b8135610fcb816146ac565b6000806040838503121561490e57600080fd5b823561491981614230565b9150602083013561ffff811681146148d357600080fd5b60008060008060006060868803121561494857600080fd5b853561495381614230565b945060208601356001600160401b038082111561447257600080fd5b6000806000806080858703121561498557600080fd5b843561499081614230565b935060208501356149a081614230565b92506040850135915060608501356001600160401b038111156149c257600080fd5b8501601f810187136149d357600080fd5b6149e28782356020840161478e565b91505092959194509250565b600081518084526020808501945080840160005b8381101561434e5781516001600160a01b031687529582019590820190600101614a02565b602081526000610fcb60208301846149ee565b604081526000614a4d60408301856149ee565b8281036020840152614a5f818561431e565b95945050505050565b80356001600160501b0381168114610bc257600080fd5b60008060408385031215614a9257600080fd5b8235614a9d81614230565b9150614aab60208401614a68565b90509250929050565b60008060408385031215614ac757600080fd5b8235614ad281614230565b915060208301356148d381614230565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c90821680614b3a57607f821691505b60208210810361342057634e487b7160e01b600052602260045260246000fd5b6020808252601190820152702737b732bc34b9ba32b73a103a37b5b2b760791b604082015260600190565b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201614c3f57614c3f614c17565b5060010190565b808201808211156107fc576107fc614c17565b6000808335601e19843603018112614c7057600080fd5b8301803591506001600160401b03821115614c8a57600080fd5b602001915036819003821315610c9857600080fd5b600060208284031215614cb157600080fd5b610fcb82614a68565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b601f821115610a2057600081815260208120601f850160051c81016020861015614d615750805b601f850160051c820191505b818110156123fe57828155600101614d6d565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614dac57614dac614721565b614dc083614dba8354614b26565b83614d3a565b6000601f841160018114614dee5760008515614ddc5750838201355b614de68682614d80565b845550610b12565b600083815260209020601f19861690835b82811015614e1f5786850135825560209485019460019092019101614dff565b5086821015614e3c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6040808252810184905260008560608301825b87811015614e91578235614e7481614230565b6001600160a01b0316825260209283019290910190600101614e61565b5083810360208501528481526001600160fb1b03851115614eb157600080fd5b8460051b915081866020830137016020019695505050505050565b81516001600160401b03811115614ee557614ee5614721565b614ef981614ef38454614b26565b84614d3a565b602080601f831160018114614f285760008415614f165750858301515b614f208582614d80565b8655506123fe565b600085815260208120601f198616915b82811015614f5757888601518255948401946001909101908401614f38565b5085821015614f755787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176107fc576107fc614c17565b600082614fb957634e487b7160e01b600052601260045260246000fd5b500490565b600061ffff808316818103614fd557614fd5614c17565b6001019392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60006001600160401b0382111561509557615095614721565b5060051b60200190565b600082601f8301126150b057600080fd5b815160206150c061479c8361507c565b82815260059290921b840181019181810190868411156150df57600080fd5b8286015b848110156150fa57805183529183019183016150e3565b509695505050505050565b6000806040838503121561511857600080fd5b82516001600160401b038082111561512f57600080fd5b818501915085601f83011261514357600080fd5b8151602061515361479c8361507c565b82815260059290921b8401810191818101908984111561517257600080fd5b948201945b8386101561519957855161518a81614230565b82529482019490820190615177565b918801519196509093505050808211156151b257600080fd5b506148458582860161509f565b600081546151cc81614b26565b600182811680156151e457600181146151f957615228565b60ff1984168752821515830287019450615228565b8560005260208060002060005b8581101561521f5781548a820152908401908201615206565b50505082870194505b5050505092915050565b600061227161524183866151bf565b846151bf565b60006020828403121561525957600080fd5b81516001600160401b0381111561526f57600080fd5b8201601f8101841361528057600080fd5b805161528e61479c82614767565b8181528560208385010111156152a357600080fd5b614a5f826020830160208601614262565b60006152c082856151bf565b83516152d0818360208801614262565b01949350505050565b818103818111156107fc576107fc614c17565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061533590830184614286565b9695505050505050565b60006020828403121561535157600080fd5b8151610fcb816141fd565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b60006020828403121561539857600080fd5b8151610fcb816146ac565b6020808252601a9082015279457874656e73696f6e20617070726f76616c206661696c75726560301b60408201526060019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122033d97fc510dd28a105e36627cd7e1687cfdb719fb4cf00addc03fb72657fbe0d64736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102ef5760003560e01c80636d73e66911610194578063b0fe87c9116100ea578063b0fe87c91461066e578063b4b5b48f14610681578063b88d4fde146106cc578063b9c4d9fb146106df578063bb3bafd6146106ff578063c87b56dd14610720578063ce8aee9d14610733578063d397371914610746578063d5a06d4c146106ff578063e00aab4b14610759578063e92a89f61461076c578063e985e9c51461077f578063f0cdc49914610792578063f2fde38b146107a5578063fe2e1f58146107b8578063ffa1ad74146107cb57600080fd5b80636d73e6691461057d57806370a0823114610590578063715018a6146105a357806372ff03d3146105ab5780637884af44146105be5780637aa15f16146105d157806382dcc0c8146105e457806383b7db63146105f75780638da5cb5b146105ff57806395d89b411461060757806399e0dd7c1461060f578063a22cb46514610622578063aafb2d4414610635578063ac0c8cfa14610648578063ad2d0ddd1461065b57600080fd5b806330176e131161024957806330176e131461045e5780633071a0f91461047157806331ae450b14610484578063332dd1ae1461049957806338e52e78146104ac5780633e6134b8146104bf5780633f0f37f6146104d25780634278330e146104e557806342842e0e146104f857806342966c681461050b5780634cd88b761461051e578063596798ad1461053157806361e5bc6b146105445780636352211e1461055757806366d1e9d01461056a57600080fd5b806301ffc9a7146102f457806302e7afb71461031c57806306fdde0314610331578063081812fc14610346578063095ea7b3146103665780630ebd4c7f14610379578063162094c41461039957806320e4afe2146103ac57806322f374d0146103bf578063239be317146103d057806323b872dd146103e357806324d7806c146103f65780632928ca58146104095780632a55205a1461042a5780632d3456701461044b575b600080fd5b610307610302366004614213565b6107d3565b60405190151581526020015b60405180910390f35b61032f61032a366004614245565b610802565b005b610339610857565b60405161031391906142b2565b6103596103543660046142c5565b6108e9565b60405161031391906142de565b61032f6103743660046142f2565b610910565b61038c6103873660046142c5565b610a25565b6040516103139190614359565b61032f6103a73660046143ad565b610a55565b61032f6103ba36600461443c565b610aa0565b606f546001600160a01b0316610359565b6103596103de3660046142c5565b610b19565b61032f6103f13660046144b5565b610bc7565b610307610404366004614245565b610bf8565b61041c610417366004614245565b610c27565b604051908152602001610313565b61043d6104383660046144f6565b610c61565b604051610313929190614518565b61032f610459366004614245565b610c9f565b61032f61046c366004614531565b610cfc565b61032f61047f366004614572565b610d46565b61048c610d9c565b60405161031391906145ad565b61032f6104a73660046145fa565b610e4a565b61038c6104ba366004614665565b610e9e565b61032f6104cd366004614531565b610fd2565b61032f6104e03660046146ba565b610fe6565b61038c6104f3366004614665565b61103b565b61032f6105063660046144b5565b611134565b61032f6105193660046142c5565b61114f565b61032f61052c3660046147ec565b6111e7565b61032f61053f366004614245565b61130a565b61032f6105523660046145fa565b611353565b6103596105653660046142c5565b6113d2565b61032f610578366004614531565b611407565b61032f61058b366004614245565b611419565b61041c61059e366004614245565b611471565b61032f6114f7565b61041c6105b9366004614245565b61150b565b61041c6105cc366004614572565b611570565b61038c6105df366004614665565b611606565b61032f6105f236600461484f565b611760565b61048c611773565b610359611813565b610339611822565b61032f61061d366004614531565b611831565b61032f6106303660046148a5565b61187b565b61032f6106433660046145fa565b611886565b61032f6106563660046148de565b61193d565b61038c6106693660046148fb565b61194f565b61032f61067c366004614930565b611a70565b6106b461068f3660046142c5565b6000908152606a6020526040902054600160a01b900460101c6001600160501b031690565b6040516001600160501b039091168152602001610313565b61032f6106da36600461496f565b611abd565b6106f26106ed3660046142c5565b611aef565b6040516103139190614a27565b61071261070d3660046142c5565b611b1f565b604051610313929190614a3a565b61033961072e3660046142c5565b611b59565b61032f610741366004614245565b611b89565b61041c610754366004614a7f565b611bd2565b61038c6107673660046148fb565b611c0c565b61032f61077a3660046143ad565b611ceb565b61030761078d366004614ab4565b611cfe565b61032f6107a0366004614ab4565b611d2c565b61032f6107b3366004614245565b611d76565b61041c6107c6366004614572565b611dec565b61041c600381565b60006107de82611e40565b806107ed57506107ed82611e80565b806107fc57506107fc82611ebb565b92915050565b3361080b611813565b6001600160a01b031614806108265750610826606633611ef0565b61084b5760405162461bcd60e51b815260040161084290614ae2565b60405180910390fd5b61085481611f12565b50565b60606068805461086690614b26565b80601f016020809104026020016040519081016040528092919081815260200182805461089290614b26565b80156108df5780601f106108b4576101008083540402835291602001916108df565b820191906000526020600020905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b60006108f48261201e565b506000908152606c60205260409020546001600160a01b031690565b600061091b826113d2565b9050806001600160a01b0316836001600160a01b0316036109885760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610842565b336001600160a01b03821614806109a457506109a48133611cfe565b610a165760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610842565b610a208383612043565b505050565b6060610a30826120b1565b610a4c5760405162461bcd60e51b815260040161084290614b5a565b6107fc826120ce565b33610a5e611813565b6001600160a01b03161480610a795750610a79606633611ef0565b610a955760405162461bcd60e51b815260040161084290614ae2565b610a208383836120d9565b33610aa9611813565b6001600160a01b03161480610ac45750610ac4606633611ef0565b610ae05760405162461bcd60e51b815260040161084290614ae2565b610ae9856120b1565b610b055760405162461bcd60e51b815260040161084290614b5a565b610b12858585858561213d565b5050505050565b6000610b24826120b1565b610b405760405162461bcd60e51b815260040161084290614b5a565b610b49826121c4565b90506001600160a01b038116610b9a5760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b6044820152606401610842565b610ba5607282611ef0565b15610bc25760405162461bcd60e51b815260040161084290614b85565b919050565b610bd1338261221a565b610bed5760405162461bcd60e51b815260040161084290614bb4565b610a20838383612279565b6000816001600160a01b0316610c0c611813565b6001600160a01b031614806107fc57506107fc606683611ef0565b6000610c31612406565b610c3961245f565b610c5582604051806020016040528060008152506000806124b5565b9050610bc26001606555565b600080610c6d846120b1565b610c895760405162461bcd60e51b815260040161084290614b5a565b610c93848461253e565b915091505b9250929050565b610ca7612614565b610cb2606682611ef0565b156108545760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a3610cf8606682612673565b5050565b33610d05611813565b6001600160a01b03161480610d205750610d20606633611ef0565b610d3c5760405162461bcd60e51b815260040161084290614ae2565b610cf88282612688565b33610d4f611813565b6001600160a01b03161480610d6a5750610d6a606633611ef0565b610d865760405162461bcd60e51b815260040161084290614ae2565b610d8f836126bd565b610a2083838360006126e5565b6060610da860666127e2565b6001600160401b03811115610dbf57610dbf614721565b604051908082528060200260200182016040528015610de8578160200160208202803683370190505b50905060005b610df860666127e2565b811015610e4657610e0a6066826127ec565b828281518110610e1c57610e1c614c01565b6001600160a01b039092166020928302919091019091015280610e3e81614c2d565b915050610dee565b5090565b33610e53611813565b6001600160a01b03161480610e6e5750610e6e606633611ef0565b610e8a5760405162461bcd60e51b815260040161084290614ae2565b610e986000858585856127f8565b50505050565b6060610ea8612406565b610eb061245f565b816001600160401b03811115610ec857610ec8614721565b604051908082528060200260200182016040528015610ef1578160200160208202803683370190505b5090506000606e546001610f059190614c46565b905083839050606e6000828254610f1c9190614c46565b90915550600090505b83811015610fbf57610f9a86868684818110610f4357610f43614c01565b9050602002810190610f559190614c59565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250610f95915086905087614c46565b6124b5565b838281518110610fac57610fac614c01565b6020908102919091010152600101610f25565b5050610fcb6001606555565b9392505050565b610fda61245f565b610cf8828260006128e5565b33610fef611813565b6001600160a01b0316148061100a575061100a606633611ef0565b6110265760405162461bcd60e51b815260040161084290614ae2565b61102f846126bd565b610e98848484846126e5565b6060611045612406565b61104d61245f565b816001600160401b0381111561106557611065614721565b60405190808252806020026020018201604052801561108e578160200160208202803683370190505b5090506000606e5460016110a29190614c46565b905083839050606e60008282546110b99190614c46565b90915550600090505b83811015610fbf5761110f86604051806020016040528060008152508787858181106110f0576110f0614c01565b90506020020160208101906111059190614c9f565b610f958587614c46565b83828151811061112157611121614c01565b60209081029190910101526001016110c2565b610a2083838360405180602001604052806000815250611abd565b611157612406565b611161338261221a565b6111ad5760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564006044820152606401610842565b60006111b8826113d2565b905060006111c5836121c4565b90506111d083612922565b6111db8284836129ca565b50506108546001606555565b600054610100900460ff16158080156112075750600054600160ff909116105b80611228575061121630612a87565b158015611228575060005460ff166001145b61128b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610842565b6000805460ff1916600117905580156112ae576000805461ff0019166101001790555b6112b88383612a96565b6112c0612ac7565b8015610a20576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b33611313611813565b6001600160a01b0316148061132e575061132e606633611ef0565b61134a5760405162461bcd60e51b815260040161084290614ae2565b61085481612af6565b61135b61245f565b82811461137a5760405162461bcd60e51b815260040161084290614cba565b60005b83811015610b12576113ca85858381811061139a5761139a614c01565b905060200201358484848181106113b3576113b3614c01565b90506020028101906113c59190614c59565b612b4c565b60010161137d565b6000818152606a60205260408120546001600160a01b0316806107fc5760405162461bcd60e51b815260040161084290614ce1565b61140f61245f565b610cf88282612b56565b611421612614565b61142c606682611ef0565b6108545760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a3610cf8606682612b70565b60006001600160a01b0382166114db5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610842565b506001600160a01b03166000908152606b602052604090205490565b6114ff612614565b6115096000612b85565b565b6000611515612406565b3361151e611813565b6001600160a01b031614806115395750611539606633611ef0565b6115555760405162461bcd60e51b815260040161084290614ae2565b610c5582604051806020016040528060008152506000612bd7565b600061157a612406565b33611583611813565b6001600160a01b0316148061159e575061159e606633611ef0565b6115ba5760405162461bcd60e51b815260040161084290614ae2565b6115fa8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250612bd7915050565b9050610fcb6001606555565b6060611610612406565b33611619611813565b6001600160a01b031614806116345750611634606633611ef0565b6116505760405162461bcd60e51b815260040161084290614ae2565b816001600160401b0381111561166857611668614721565b604051908082528060200260200182016040528015611691578160200160208202803683370190505b5090506000606e5460016116a59190614c46565b905083839050606e60008282546116bc9190614c46565b90915550600090505b83811015610fbf5761173b868686848181106116e3576116e3614c01565b90506020028101906116f59190614c59565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117369250869150879050614c46565b612bd7565b83828151811061174d5761174d614c01565b60209081029190910101526001016116c5565b61176861245f565b610a208383836128e5565b606061177f60706127e2565b6001600160401b0381111561179657611796614721565b6040519080825280602002602001820160405280156117bf578160200160208202803683370190505b50905060005b6117cf60706127e2565b811015610e46576117e16070826127ec565b8282815181106117f3576117f3614c01565b6001600160a01b03909216602092830291909101909101526001016117c5565b6033546001600160a01b031690565b60606069805461086690614b26565b3361183a611813565b6001600160a01b031614806118555750611855606633611ef0565b6118715760405162461bcd60e51b815260040161084290614ae2565b610cf88282612c2e565b610cf8338383612c63565b3361188f611813565b6001600160a01b031614806118aa57506118aa606633611ef0565b6118c65760405162461bcd60e51b815260040161084290614ae2565b8281146118e55760405162461bcd60e51b815260040161084290614cba565b60005b83811015610b125761193585858381811061190557611905614c01565b9050602002013584848481811061191e5761191e614c01565b90506020028101906119309190614c59565b6120d9565b6001016118e8565b61194561245f565b6108543382612d2d565b6060611959612406565b33611962611813565b6001600160a01b0316148061197d575061197d606633611ef0565b6119995760405162461bcd60e51b815260040161084290614ae2565b8161ffff166001600160401b038111156119b5576119b5614721565b6040519080825280602002602001820160405280156119de578160200160208202803683370190505b5090506000606e5460016119f29190614c46565b90508261ffff16606e6000828254611a0a9190614c46565b90915550600090505b8361ffff16811015611a6457611a3f856040518060200160405280600081525083856117369190614c46565b838281518110611a5157611a51614c01565b6020908102919091010152600101611a13565b50506107fc6001606555565b33611a79611813565b6001600160a01b03161480611a945750611a94606633611ef0565b611ab05760405162461bcd60e51b815260040161084290614ae2565b610b1285858585856127f8565b611ac7338361221a565b611ae35760405162461bcd60e51b815260040161084290614bb4565b610e9884848484612da2565b6060611afa826120b1565b611b165760405162461bcd60e51b815260040161084290614b5a565b6107fc82612dd5565b606080611b2b836120b1565b611b475760405162461bcd60e51b815260040161084290614b5a565b611b5083612ddc565b91509150915091565b6060611b64826120b1565b611b805760405162461bcd60e51b815260040161084290614b5a565b6107fc8261318a565b33611b92611813565b6001600160a01b03161480611bad5750611bad606633611ef0565b611bc95760405162461bcd60e51b815260040161084290614ae2565b61085481613426565b6000611bdc612406565b611be461245f565b611c0083604051806020016040528060008152508460006124b5565b90506107fc6001606555565b6060611c16612406565b611c1e61245f565b8161ffff166001600160401b03811115611c3a57611c3a614721565b604051908082528060200260200182016040528015611c63578160200160208202803683370190505b5090506000606e546001611c779190614c46565b90508261ffff16606e6000828254611c8f9190614c46565b90915550600090505b8361ffff16811015611a6457611cc6856040518060200160405280600081525060008486610f959190614c46565b838281518110611cd857611cd8614c01565b6020908102919091010152600101611c98565b611cf361245f565b610a20838383612b4c565b6001600160a01b039182166000908152606d6020908152604080832093909416825291909152205460ff1690565b33611d35611813565b6001600160a01b03161480611d505750611d50606633611ef0565b611d6c5760405162461bcd60e51b815260040161084290614ae2565b610cf88282613467565b611d7e612614565b6001600160a01b038116611de35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610842565b61085481612b85565b6000611df6612406565b611dfe61245f565b6115fa8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508291506124b59050565b60006001600160e01b0319821663b5d2729f60e01b1480611e7157506001600160e01b03198216639088c20760e01b145b806107fc57506107fc8261359c565b60006001600160e01b031982166380ac58cd60e01b14806107ed57506001600160e01b03198216635b5e139f60e01b14806107fc57506107fc825b60006001600160e01b03198216632a9f3abf60e11b14806107fc57506301ffc9a760e01b6001600160e01b03198316146107fc565b6001600160a01b03811660009081526001830160205260408120541515610fcb565b6001600160a01b03811615801590611f3357506001600160a01b0381163014155b611f7b5760405162461bcd60e51b815260206004820152601960248201527821b0b73737ba10313630b1b5b634b9ba103cb7bab939b2b63360391b6044820152606401610842565b611f86607082611ef0565b15611fce5760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3611fcc607082612673565b505b611fd9607282611ef0565b6108545760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a3610cf8607282612b70565b612027816120b1565b6108545760405162461bcd60e51b815260040161084290614ce1565b6000818152606c6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612078826113d2565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000908152606a60205260409020546001600160a01b0316151590565b6060610fcb82612ddc565b6000831180156120eb5750606e548311155b8015612108575060006120fd846121c4565b6001600160a01b0316145b6121245760405162461bcd60e51b815260040161084290614d13565b6000838152607760205260409020610e98828483614d95565b6121498484848461364d565b600085815260796020526040812061216091614171565b61217f84848484607960008b81526020019081526020016000206136f2565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee858585856040516121b59493929190614e4e565b60405180910390a25050505050565b6000818152606a6020526040812054600160a01b90046001600160601b0381169061ffff1682036121f85750600092915050565b61ffff166000908152607e60205260409020546001600160a01b031692915050565b600080612226836113d2565b9050806001600160a01b0316846001600160a01b0316148061224d575061224d8185611cfe565b806122715750836001600160a01b0316612266846108e9565b6001600160a01b0316145b949350505050565b6000818152606a60209081526040918290208251808401909352546001600160a01b03808216808552600160a01b9092046001600160601b03169284019290925290851681146123195760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610842565b6001600160a01b03841661237b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610842565b602082015161238c868686846137ad565b612397600085612043565b6001600160a01b038087166000818152606b60209081526040808320805460001901905593891680835284832080546001019055888352606a90915283822080546001600160a01b031916821790559251879392916000805160206153d883398151915291a45b505050505050565b6002606554036124585760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610842565b6002606555565b61246a607033611ef0565b6115095760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba103132903932b3b4b9ba32b932b21032bc3a32b739b4b7b760211b6044820152606401610842565b6000816000036124d857606e600081546124ce90614c2d565b90915550606e5491505b6124e285836137b9565b336000908152607d6020526040902054612515908690849061ffff16601087901b69ffffffffffffffff0000161761384d565b8351156125365760008281526077602052604090206125348582614ecc565b505b509392505050565b60008060008061254d86612ddc565b915091506001825111156125a25760405162461bcd60e51b815260206004820152601c60248201527b26b7b932903a3430b71018903937bcb0b63a3c903932b1b2b4bb32b960211b6044820152606401610842565b81516000036125b957306000935093505050610c98565b816000815181106125cc576125cc614c01565b602002602001015161271086836000815181106125eb576125eb614c01565b60200260200101516125fd9190614f85565b6126079190614f9c565b9350935050509250929050565b3361261d611813565b6001600160a01b0316146115095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610842565b6000610fcb836001600160a01b038416613868565b6000805260746020527fccdf39d850e26d5964b24c5391eecfa7a13a375488d6de2101d279419f39a537610a20828483614d95565b6126c8607282611ef0565b156108545760405162461bcd60e51b815260040161084290614b85565b607c5461ffff908116106127315760405162461bcd60e51b8152602060048201526013602482015272546f6f206d616e7920657874656e73696f6e7360681b6044820152606401610842565b6001600160a01b0384166000908152607d602052604081205461ffff1690036127d657607c80546000906127689061ffff16614fbe565b82546101009290920a61ffff818102199093169183160217909155607c80546001600160a01b0387166000818152607d60209081526040808320805495881661ffff199096169590951790945593549094168452607e90925290912080546001600160a01b03191690911790555b610e988484848461395b565b60006107fc825490565b6000610fcb8383613a4c565b6128048484848461364d565b6001600160a01b038516600090815260786020526040812061282591614171565b61285684848484607860008b6001600160a01b03166001600160a01b031681526020019081526020016000206136f2565b6001600160a01b0385166128a6577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b848484846040516128999493929190614e4e565b60405180910390a1610b12565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f858585856040516121b59493929190614e4e565b3360009081526074602052604090206128ff838583614d95565b50336000908152607560205260409020805460ff19169115159190911790555050565b6000818152606a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201839052909290919061297290839086846137ad565b61297d600085612043565b6001600160a01b0382166000818152606b602090815260408083208054600019019055878352606a909152808220829055518692906000805160206153d8833981519152908390a4610e98565b6001600160a01b03811615612a50576129ea816311686e4b60e21b613a76565b15612a50576040516311686e4b60e21b81526001600160a01b038216906345a1b92c90612a1d9086908690600401614518565b600060405180830381600087803b158015612a3757600080fd5b505af1158015612a4b573d6000803e3d6000fd5b505050505b60008281526077602052604090208054612a6990614b26565b159050610a20576000828152607760205260408120610a209161418f565b6001600160a01b03163b151590565b600054610100900460ff16612abd5760405162461bcd60e51b815260040161084290614fdf565b610cf88282613a92565b600054610100900460ff16612aee5760405162461bcd60e51b815260040161084290614fdf565b611509613ad2565b606f80546001600160a01b0319166001600160a01b0383161790556040517f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f90612b419083906142de565b60405180910390a150565b336120fd846121c4565b336000908152607660205260409020610a20828483614d95565b6000610fcb836001600160a01b038416613b02565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003612bfa57606e60008154612bf090614c2d565b90915550606e5491505b612c068483600061384d565b825115612c27576000828152607760205260409020612c258482614ecc565b505b5092915050565b6000805260766020527fafbc767fed27552cbeceb3d11150dacedabc53b0cc52ac5aa6285a747a181958610a20828483614d95565b816001600160a01b0316836001600160a01b031603612cc05760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610842565b6001600160a01b038381166000818152606d6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612d3e826345ffcdad60e01b613a76565b15610cf8576001600160a01b0382166000818152607a6020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b612dad848484612279565b612db984848484613b51565b610e985760405162461bcd60e51b81526004016108429061502a565b6060612c27825b606080600060796000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015612e5e57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612e14565b5050505090508051600003612fab576000612e78856121c4565b90506001600160a01b03811615612fa957612e9a81634e53ee3d60e11b613a76565b15612f2557604051634e53ee3d60e11b81526001600160a01b03821690639ca7dc7a90612ecd9030908990600401614518565b600060405180830381865afa158015612eea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f129190810190615105565b8151919550935015612f25575050915091565b6001600160a01b038116600090815260786020908152604080832080548251818502810185019093528083529193909284015b82821015612fa257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612f58565b5050505091505b505b805160000361304e576000808052607860209081527f081a134e404bb5bca49ef6b8477e647c1205f6d43d6a20bb692a968ac5aa71448054604080518285028101850190915281815293919290919084015b8282101561304757600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612ffd565b5050505090505b8051156131845780516001600160401b0381111561306e5761306e614721565b604051908082528060200260200182016040528015613097578160200160208202803683370190505b50925080516001600160401b038111156130b3576130b3614721565b6040519080825280602002602001820160405280156130dc578160200160208202803683370190505b50915060005b8151811015613182578181815181106130fd576130fd614c01565b60200260200101516000015184828151811061311b5761311b614c01565b60200260200101906001600160a01b031690816001600160a01b03168152505081818151811061314d5761314d614c01565b60200260200101516020015161ffff1683828151811061316f5761316f614c01565b60209081029190910101526001016130e2565b505b50915091565b606060008211801561319e5750606e548211155b6131ba5760405162461bcd60e51b815260040161084290614d13565b60006131c5836121c4565b90506131d2607282611ef0565b156131ef5760405162461bcd60e51b815260040161084290614b85565b6000838152607760205260409020805461320890614b26565b159050613322576001600160a01b0381166000908152607660205260409020805461323290614b26565b159050613283576001600160a01b03811660009081526076602090815260408083208684526077835292819020905161326c939201615232565b604051602081830303815290604052915050919050565b6000838152607760205260409020805461329c90614b26565b80601f01602080910402602001604051908101604052809291908181526020018280546132c890614b26565b80156133155780601f106132ea57610100808354040283529160200191613315565b820191906000526020600020905b8154815290600101906020018083116132f857829003601f168201915b5050505050915050919050565b6133338163e9dc637560e01b613a76565b156133ab5760405163e9dc637560e01b81526001600160a01b0382169063e9dc6375906133669030908790600401614518565b600060405180830381865afa158015613383573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fcb9190810190615247565b6001600160a01b03811660009081526075602052604090205460ff166133fd576001600160a01b03811660009081526074602052604090206133ec84613c56565b60405160200161326c9291906152b4565b6001600160a01b0381166000908152607460205260409020805461329c90614b26565b50919050565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3610cf8607082612673565b613472607083611ef0565b6134be5760405162461bcd60e51b815260206004820152601e60248201527f43726561746f72436f72653a20496e76616c696420657874656e73696f6e00006044820152606401610842565b6001600160a01b03811615806134e057506134e081631e05385b60e31b613a76565b61351e5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610842565b6001600160a01b038281166000908152607b6020526040902054811690821614610cf8576001600160a01b038281166000818152607b602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b60006001600160e01b031982166314d9799760e21b14806135cd57506001600160e01b031982166328f10a2160e01b145b806135dc57506135dc82611e80565b806135f757506001600160e01b03198216635d9dd7eb60e11b145b8061361257506001600160e01b03198216632dde656160e21b145b8061362d57506001600160e01b031982166335681b5360e21b145b806107fc57506001600160e01b0319821663152a902d60e11b1492915050565b82811461366c5760405162461bcd60e51b815260040161084290614cba565b6000805b828110156136a65783838281811061368a5761368a614c01565b905060200201358261369c9190614c46565b9150600101613670565b506127108110610b125760405162461bcd60e51b8152602060048201526017602482015276496e76616c696420746f74616c20726f79616c7469657360481b6044820152606401610842565b60005b828110156123fe5781604051806040016040528088888581811061371b5761371b614c01565b90506020020160208101906137309190614245565b6001600160a01b0316815260200186868581811061375057613750614c01565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b0390911617919091179055016136f5565b610e9884848484613ce8565b336000908152607b60205260409020546001600160a01b031615610cf857336000818152607b602052604090819020549051631e05385b60e31b815260048101929092526001600160a01b03848116602484015260448301849052169063f029c2d890606401600060405180830381600087803b15801561383957600080fd5b505af11580156123fe573d6000803e3d6000fd5b610a2083838360405180602001604052806000815250613d23565b6000818152600183016020526040812054801561395157600061388c6001836152d9565b85549091506000906138a0906001906152d9565b90508181146139055760008660000182815481106138c0576138c0614c01565b90600052602060002001549050808760000184815481106138e3576138e3614c01565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613916576139166152ec565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107fc565b60009150506107fc565b6001600160a01b03841630148015906139815750613981846001600160a01b0316612a87565b6139b75760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b6044820152606401610842565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b0384166000908152607460205260409020613a10838583614d95565b506001600160a01b0384166000908152607560205260409020805460ff1916821515179055613a40607085612b70565b50610e98846001612d2d565b6000826000018281548110613a6357613a63614c01565b9060005260206000200154905092915050565b6000613a8183613e5f565b8015610fcb5750610fcb8383613e92565b600054610100900460ff16613ab95760405162461bcd60e51b815260040161084290614fdf565b6068613ac58382614ecc565b506069610a208282614ecc565b600054610100900460ff16613af95760405162461bcd60e51b815260040161084290614fdf565b61150933612b85565b6000818152600183016020526040812054613b49575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107fc565b5060006107fc565b6000613b65846001600160a01b0316612a87565b15613c4e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613b9c903390899088908890600401615302565b6020604051808303816000875af1925050508015613bd7575060408051601f3d908101601f19168201909252613bd49181019061533f565b60015b613c34573d808015613c05576040519150601f19603f3d011682016040523d82523d6000602084013e613c0a565b606091505b508051600003613c2c5760405162461bcd60e51b81526004016108429061502a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612271565b506001612271565b60606000613c6383613f1b565b60010190506000816001600160401b03811115613c8257613c82614721565b6040519080825280601f01601f191660200182016040528015613cac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613cb657509392505050565b6001600160a01b03841615610e985761ffff81166000908152607e6020526040902054610e98908590859085906001600160a01b0316613ff1565b6001600160a01b038416613d795760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610842565b613d82836120b1565b15613dce5760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610842565b613ddb60008585856137ad565b6001600160a01b038085166000818152606b6020908152604080832080546001019055805180820182528481526001600160601b038089168285019081528a8652606a9094528285209151935116600160a01b02929095169190911790935591518592906000805160206153d8833981519152908290a4612db96000858584613b51565b6000613e72826301ffc9a760e01b613e92565b80156107fc5750613e8b826001600160e01b0319613e92565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015613f04575060208210155b8015613f105750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310613f5a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310613f84576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310613fa257662386f26fc10000830492506010015b6305f5e1008310613fba576305f5e100830492506008015b6127108310613fce57612710830492506004015b60648310613fe0576064830492506002015b600a83106107fc5760010192915050565b6001600160a01b03841615610e98576001600160a01b0381161580159061403057506001600160a01b0381166000908152607a602052604090205460ff165b156140cb57604051632f3537c560e11b81526001600160a01b03821690635e6a6f8a9061406790339088908890889060040161535c565b6020604051808303816000875af1158015614086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140aa9190615386565b6140c65760405162461bcd60e51b8152600401610842906153a3565b610e98565b606f546001600160a01b031615610e9857606f54604051632f3537c560e11b81526001600160a01b0390911690635e6a6f8a9061411290339088908890889060040161535c565b6020604051808303816000875af1158015614131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141559190615386565b610e985760405162461bcd60e51b8152600401610842906153a3565b508054600082559060005260206000209081019061085491906141c9565b50805461419b90614b26565b6000825580601f106141ab575050565b601f01602090049060005260206000209081019061085491906141e8565b5b80821115610e465780546001600160b01b03191681556001016141ca565b5b80821115610e4657600081556001016141e9565b6001600160e01b03198116811461085457600080fd5b60006020828403121561422557600080fd5b8135610fcb816141fd565b6001600160a01b038116811461085457600080fd5b60006020828403121561425757600080fd5b8135610fcb81614230565b60005b8381101561427d578181015183820152602001614265565b50506000910152565b6000815180845261429e816020860160208601614262565b601f01601f19169290920160200192915050565b602081526000610fcb6020830184614286565b6000602082840312156142d757600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561430557600080fd5b823561431081614230565b946020939093013593505050565b600081518084526020808501945080840160005b8381101561434e57815187529582019590820190600101614332565b509495945050505050565b602081526000610fcb602083018461431e565b60008083601f84011261437e57600080fd5b5081356001600160401b0381111561439557600080fd5b602083019150836020828501011115610c9857600080fd5b6000806000604084860312156143c257600080fd5b8335925060208401356001600160401b038111156143df57600080fd5b6143eb8682870161436c565b9497909650939450505050565b60008083601f84011261440a57600080fd5b5081356001600160401b0381111561442157600080fd5b6020830191508360208260051b8501011115610c9857600080fd5b60008060008060006060868803121561445457600080fd5b8535945060208601356001600160401b038082111561447257600080fd5b61447e89838a016143f8565b9096509450604088013591508082111561449757600080fd5b506144a4888289016143f8565b969995985093965092949392505050565b6000806000606084860312156144ca57600080fd5b83356144d581614230565b925060208401356144e581614230565b929592945050506040919091013590565b6000806040838503121561450957600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561454457600080fd5b82356001600160401b0381111561455a57600080fd5b6145668582860161436c565b90969095509350505050565b60008060006040848603121561458757600080fd5b833561459281614230565b925060208401356001600160401b038111156143df57600080fd5b6020808252825182820181905260009190848201906040850190845b818110156145ee5783516001600160a01b0316835292840192918401916001016145c9565b50909695505050505050565b6000806000806040858703121561461057600080fd5b84356001600160401b038082111561462757600080fd5b614633888389016143f8565b9096509450602087013591508082111561464c57600080fd5b50614659878288016143f8565b95989497509550505050565b60008060006040848603121561467a57600080fd5b833561468581614230565b925060208401356001600160401b038111156146a057600080fd5b6143eb868287016143f8565b801515811461085457600080fd5b600080600080606085870312156146d057600080fd5b84356146db81614230565b935060208501356001600160401b038111156146f657600080fd5b6147028782880161436c565b9094509250506040850135614716816146ac565b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561475f5761475f614721565b604052919050565b60006001600160401b0382111561478057614780614721565b50601f01601f191660200190565b60006147a161479c84614767565b614737565b90508281528383830111156147b557600080fd5b828260208301376000602084830101529392505050565b600082601f8301126147dd57600080fd5b610fcb8383356020850161478e565b600080604083850312156147ff57600080fd5b82356001600160401b038082111561481657600080fd5b614822868387016147cc565b9350602085013591508082111561483857600080fd5b50614845858286016147cc565b9150509250929050565b60008060006040848603121561486457600080fd5b83356001600160401b0381111561487a57600080fd5b6148868682870161436c565b909450925050602084013561489a816146ac565b809150509250925092565b600080604083850312156148b857600080fd5b82356148c381614230565b915060208301356148d3816146ac565b809150509250929050565b6000602082840312156148f057600080fd5b8135610fcb816146ac565b6000806040838503121561490e57600080fd5b823561491981614230565b9150602083013561ffff811681146148d357600080fd5b60008060008060006060868803121561494857600080fd5b853561495381614230565b945060208601356001600160401b038082111561447257600080fd5b6000806000806080858703121561498557600080fd5b843561499081614230565b935060208501356149a081614230565b92506040850135915060608501356001600160401b038111156149c257600080fd5b8501601f810187136149d357600080fd5b6149e28782356020840161478e565b91505092959194509250565b600081518084526020808501945080840160005b8381101561434e5781516001600160a01b031687529582019590820190600101614a02565b602081526000610fcb60208301846149ee565b604081526000614a4d60408301856149ee565b8281036020840152614a5f818561431e565b95945050505050565b80356001600160501b0381168114610bc257600080fd5b60008060408385031215614a9257600080fd5b8235614a9d81614230565b9150614aab60208401614a68565b90509250929050565b60008060408385031215614ac757600080fd5b8235614ad281614230565b915060208301356148d381614230565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c90821680614b3a57607f821691505b60208210810361342057634e487b7160e01b600052602260045260246000fd5b6020808252601190820152702737b732bc34b9ba32b73a103a37b5b2b760791b604082015260600190565b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201614c3f57614c3f614c17565b5060010190565b808201808211156107fc576107fc614c17565b6000808335601e19843603018112614c7057600080fd5b8301803591506001600160401b03821115614c8a57600080fd5b602001915036819003821315610c9857600080fd5b600060208284031215614cb157600080fd5b610fcb82614a68565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b601f821115610a2057600081815260208120601f850160051c81016020861015614d615750805b601f850160051c820191505b818110156123fe57828155600101614d6d565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614dac57614dac614721565b614dc083614dba8354614b26565b83614d3a565b6000601f841160018114614dee5760008515614ddc5750838201355b614de68682614d80565b845550610b12565b600083815260209020601f19861690835b82811015614e1f5786850135825560209485019460019092019101614dff565b5086821015614e3c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6040808252810184905260008560608301825b87811015614e91578235614e7481614230565b6001600160a01b0316825260209283019290910190600101614e61565b5083810360208501528481526001600160fb1b03851115614eb157600080fd5b8460051b915081866020830137016020019695505050505050565b81516001600160401b03811115614ee557614ee5614721565b614ef981614ef38454614b26565b84614d3a565b602080601f831160018114614f285760008415614f165750858301515b614f208582614d80565b8655506123fe565b600085815260208120601f198616915b82811015614f5757888601518255948401946001909101908401614f38565b5085821015614f755787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176107fc576107fc614c17565b600082614fb957634e487b7160e01b600052601260045260246000fd5b500490565b600061ffff808316818103614fd557614fd5614c17565b6001019392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60006001600160401b0382111561509557615095614721565b5060051b60200190565b600082601f8301126150b057600080fd5b815160206150c061479c8361507c565b82815260059290921b840181019181810190868411156150df57600080fd5b8286015b848110156150fa57805183529183019183016150e3565b509695505050505050565b6000806040838503121561511857600080fd5b82516001600160401b038082111561512f57600080fd5b818501915085601f83011261514357600080fd5b8151602061515361479c8361507c565b82815260059290921b8401810191818101908984111561517257600080fd5b948201945b8386101561519957855161518a81614230565b82529482019490820190615177565b918801519196509093505050808211156151b257600080fd5b506148458582860161509f565b600081546151cc81614b26565b600182811680156151e457600181146151f957615228565b60ff1984168752821515830287019450615228565b8560005260208060002060005b8581101561521f5781548a820152908401908201615206565b50505082870194505b5050505092915050565b600061227161524183866151bf565b846151bf565b60006020828403121561525957600080fd5b81516001600160401b0381111561526f57600080fd5b8201601f8101841361528057600080fd5b805161528e61479c82614767565b8181528560208385010111156152a357600080fd5b614a5f826020830160208601614262565b60006152c082856151bf565b83516152d0818360208801614262565b01949350505050565b818103818111156107fc576107fc614c17565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061533590830184614286565b9695505050505050565b60006020828403121561535157600080fd5b8151610fcb816141fd565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b60006020828403121561539857600080fd5b8151610fcb816146ac565b6020808252601a9082015279457874656e73696f6e20617070726f76616c206661696c75726560301b60408201526060019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122033d97fc510dd28a105e36627cd7e1687cfdb719fb4cf00addc03fb72657fbe0d64736f6c63430008130033",
  "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:44762:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "58:87: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": "81:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "92:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "103:3:81",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "108:10:81",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "99:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "99:20:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "88:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "88:32:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "78:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "78:43:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "71:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "71:51:81"
                  },
                  "nodeType": "YulIf",
                  "src": "68:71:81"
                }
              ]
            },
            "name": "validator_revert_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "47:5:81",
                "type": ""
              }
            ],
            "src": "14:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "219:176:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "265:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "274:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "277:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "267:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "267:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "267:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "240:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "249:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "236:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "236:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "261:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "232:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "232:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "229:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "290:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "316:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "303:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "303:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "294:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "359:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "335:23:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "335:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "335:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "374:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "384:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "374:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "185:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "196:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "208:6:81",
                "type": ""
              }
            ],
            "src": "150:245:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "495:92:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "505:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "517:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "528:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "513:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "513:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "505:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "547:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "572:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "565:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "565:14:81"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "558:6:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "558:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "540:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "540:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "540:41:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "464:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "475:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "486:4:81",
                "type": ""
              }
            ],
            "src": "400:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "637:86:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "701:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "710:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "713:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "703:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "703:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "703:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "660:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "671:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "686:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "691:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "682:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "682:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "695:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "678:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "678:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "667:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "667:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "657:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "657:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "650:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "650:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "647:70:81"
                }
              ]
            },
            "name": "validator_revert_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "626:5:81",
                "type": ""
              }
            ],
            "src": "592:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "798:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "844:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "853:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "856:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "846:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "846:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "846:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "819:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "828:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "815:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "815:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "840:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "811:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "811:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "808:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "869:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "895:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "882:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "882:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "873:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "939:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "914:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "914:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "914:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "954:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "964:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "954:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "764:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "775:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "787:6:81",
                "type": ""
              }
            ],
            "src": "728:247:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1046:184:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1056:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1065:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "1060:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1125:63:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "dst",
                                  "nodeType": "YulIdentifier",
                                  "src": "1150:3:81"
                                },
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "1155:1:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "1146:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1146:11:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "src",
                                      "nodeType": "YulIdentifier",
                                      "src": "1169:3:81"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "1174:1:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "1165:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1165:11:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "1159:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1159:18:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1139:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1139:39:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1139:39:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1086:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1089:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "1083:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1083:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1097:19:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1099:15:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1108:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1111:2:81",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1104:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1104:10:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1099:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "1079:3:81",
                    "statements": []
                  },
                  "src": "1075:113:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "1208:3:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1213:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1204:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1204:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1222:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1197:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1197:27:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1197:27:81"
                }
              ]
            },
            "name": "copy_memory_to_memory_with_cleanup",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "1024:3:81",
                "type": ""
              },
              {
                "name": "dst",
                "nodeType": "YulTypedName",
                "src": "1029:3:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "1034:6:81",
                "type": ""
              }
            ],
            "src": "980:250:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1285:221:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1295:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1315:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1309:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1309:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "1299:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "1337:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1342:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1330:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1330:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1330:19:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "1397:5:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1404:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1393:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1393:16:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1415:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1420:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1411:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1411:14:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1427:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "1358:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1358:76:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1358:76:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1443:57:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1458:3:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "1471:6:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1479:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "1467:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1467:15:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1488:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "1484:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1484:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "1463:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1463:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1454:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1454:39:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1495:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1450:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1450:50:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "1443:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "1262:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "1269:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "1277:3:81",
                "type": ""
              }
            ],
            "src": "1235:271:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1632:99:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1649:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1660:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1642:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1642:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1642:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1672:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1698:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1710:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1721:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1706:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1706:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "1680:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1680:45:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1672: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": "1601:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1612:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1623:4:81",
                "type": ""
              }
            ],
            "src": "1511:220:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1806:110:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1852:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1861:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1864:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1854:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1854:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1854:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1827:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1836:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1823:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1823:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1848:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1819:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1819:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1816:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1877:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1900:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1887:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1887:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1877:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1772:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1783:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1795:6:81",
                "type": ""
              }
            ],
            "src": "1736:180:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2022:102:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "2032:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2044:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2055:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2040:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2040:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2032:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2074:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "2089:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2105:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2110:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "2101:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2101:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2114:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "2097:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2097:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "2085:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2085:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2067:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2067:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2067:51:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1991:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2002:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2013:4:81",
                "type": ""
              }
            ],
            "src": "1921:203:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2216:228:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2262:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2271:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2274:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2264:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2264:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2264:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2237:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2246:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2233:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2233:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2258:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2229:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2229:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2226:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2287:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2313:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2300:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2300:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "2291:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2357:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "2332:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2332:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2332:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2372:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "2382:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2372:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2396:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2423:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2434:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2419:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2419:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2406:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2406:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "2396:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2174:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2185:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2197:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "2205:6:81",
                "type": ""
              }
            ],
            "src": "2129:315:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2510:374:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2520:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2540:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "2534:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2534:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "2524:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2562:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2567:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2555:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2555:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2555:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2583:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2593:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2587:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2606:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2617:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2622:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2613:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2613:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "2606:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2634:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2652:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2659:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2648:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2648:14:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "2638:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2671:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2680:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "2675:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2739:120:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2760:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nodeType": "YulIdentifier",
                                  "src": "2771:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "2765:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2765:13:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "2753:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2753:26:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2753:26:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2792:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2803:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2808:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2799:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2799:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "2792:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2824:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "2838:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2846:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2834:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2834:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "2824:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "2701:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2704:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "2698:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2698:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "2712:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "2714:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "2723:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2726:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2719:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2719:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "2714:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "2694:3:81",
                    "statements": []
                  },
                  "src": "2690:169:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2868:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "2875:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "2868:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "2487:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "2494:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "2502:3:81",
                "type": ""
              }
            ],
            "src": "2449:435:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3040:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3057:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3068:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3050:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3050:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3050:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3080:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "3117:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3129:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3140:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3125:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3125:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "3088:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3088:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3080: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": "3009:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3020:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3031:4:81",
                "type": ""
              }
            ],
            "src": "2889:261:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3228:275:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3277:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3286:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3289:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3279:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3279:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3279:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3256:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3264:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3252:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3252:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "3271:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "3248:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3248:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "3241:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3241:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3238:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3302:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3325:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3312:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3312:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "3302:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3375:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3384:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3387:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3377:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3377:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3377:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3347:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3355:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3344:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3344:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3341:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3400:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3416:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3424:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3412:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3412:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "3400:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3481:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3490:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3493:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3483:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3483:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3483:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3452:6:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "3460:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3448:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3448:19:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3469:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3444:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3444:30:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "3476:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3441:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3441:39:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3438:59:81"
                }
              ]
            },
            "name": "abi_decode_string_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "3191:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "3199:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "3207:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "3217:6:81",
                "type": ""
              }
            ],
            "src": "3155:348:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3615:372:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3661:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3670:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3673:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3663:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3663:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3663:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3636:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3645:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "3632:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3632:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3657:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "3628:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3628:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3625:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3686:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3709:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3696:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3696:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "3686:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3728:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3759:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3770:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3755:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3755:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3742:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3742:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "3732:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3817:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3826:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3829:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3819:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3819:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3819:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3789:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3797:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3786:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3786:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3783:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3842:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3899:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "3910:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3895:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3895:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3919:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "3868:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3868:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "3846:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "3856:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3936:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "3946:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "3936:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3963:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "3973:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "3963:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3565:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "3576:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3588:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3596:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "3604:6:81",
                "type": ""
              }
            ],
            "src": "3508:479:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4084:283:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4133:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4142:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4145:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4135:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4135:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4135:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4112:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4120:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4108:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4108:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "4127:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "4104:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4104:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "4097:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4097:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4094:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4158:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4181:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4168:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4168:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "4158:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4231:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4240:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4243:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4233:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4233:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4233:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "4203:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4211:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4200:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4200:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4197:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4256:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4272:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4280:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4268:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4268:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "4256:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4345:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4354:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4357:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4347:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4347:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4347:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4308:6:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "4320:1:81",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "4323:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "4316:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4316:14:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4304:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4304:27:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4333:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4300:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4300:38:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "4340:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4297:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4297:47:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4294:67:81"
                }
              ]
            },
            "name": "abi_decode_array_address_payable_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "4047:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "4055:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "4063:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "4073:6:81",
                "type": ""
              }
            ],
            "src": "3992:375:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4554:683:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4600:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4609:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4612:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4602:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4602:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4602:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4575:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4584:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4571:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4571:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4596:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "4567:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4567:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4564:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4625:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4648:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4635:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4635:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "4625:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4667:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4698:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4709:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4694:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4694:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4681:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4681:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "4671:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4722:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "4732:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "4726:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4777:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4786:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4789:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4779:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4779:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4779:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4765:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4773:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4762:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4762:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4759:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4802:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4878:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4889:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4874:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4874:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "4898:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "4828:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4828:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "4806:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "4816:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4915:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "4925:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "4915:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4942:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "4952:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "4942:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4969:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5002:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5013:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4998:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4998:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4985:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4985:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "4973:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5046:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5055:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5058:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5048:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5048:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5048:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "5032:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "5042:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5029:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5029:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5026:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5071:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5147:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "5158:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5143:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5143:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5169:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "5097:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5097:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "5075:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "5085:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5186:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "5196:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "5186:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5213:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "5223:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "5213: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": "4488:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "4499:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4511:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "4519:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "4527:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "4535:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "4543:6:81",
                "type": ""
              }
            ],
            "src": "4372:865:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5346:352:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5392:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5401:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5404:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5394:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5394:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5394:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5367:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5376:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5363:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5363:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5388:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5359:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5359:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5356:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5417:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5443:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5430:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5430:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "5421:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "5487:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "5462:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5462:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5462:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5502:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "5512:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "5502:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5526:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5558:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5569:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5554:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5554:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5541:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5541:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "5530:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "5607:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "5582:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5582:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5582:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5624:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "5634:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "5624:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5650:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5677:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5688:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5673:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5673:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5660:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5660:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "5650:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5296:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5307:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5319:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5327:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "5335:6:81",
                "type": ""
              }
            ],
            "src": "5242:456:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5804:76:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5814:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5826:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5837:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5822:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5822:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5814:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5856:9:81"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "5867:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5849:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5849:25:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5849:25:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5773:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5784:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5795:4:81",
                "type": ""
              }
            ],
            "src": "5703:177:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5972:161:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6018:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6027:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6030:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6020:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6020:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6020:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5993:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6002:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5989:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5989:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6014:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5985:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5985:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5982:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6043:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6066:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6053:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6053:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "6043:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6085:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6112:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6123:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6108:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6108:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6095:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6095:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "6085:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5930:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5941:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5953:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5961:6:81",
                "type": ""
              }
            ],
            "src": "5885:248:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6267:145:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "6277:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6289:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6300:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6285:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6285:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "6277:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6319:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "6334:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6350:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6355:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "6346:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6346:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6359:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "6342:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6342:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "6330:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6330:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6312:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6312:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6312:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6383:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6394:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6379:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6379:18:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "6399:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6372:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6372:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6372: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": "6228:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "6239:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6247:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "6258:4:81",
                "type": ""
              }
            ],
            "src": "6138:274:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6507:321:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6553:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6562:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6565:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6555:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6555:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6555:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6528:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6537:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "6524:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6524:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6549:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "6520:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6520:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6517:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6578:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6605:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6592:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6592:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "6582:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6658:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6667:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6670:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6660:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6660:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6660:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6630:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6638:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6627:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6627:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6624:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6683:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6740:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "6751:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6736:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6736:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6760:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "6709:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6709:59:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "6687:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "6697:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6777:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "6787:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "6777:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6804:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "6814:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "6804:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6465:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "6476:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6488:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "6496:6:81",
                "type": ""
              }
            ],
            "src": "6417:411:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6940:439:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6986:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6995:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6998:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6988:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6988:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6988:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6961:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6970:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "6957:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6957:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6982:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "6953:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6953:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6950:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7011:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7037:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7024:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7024:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "7015:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "7081:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "7056:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7056:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7056:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7096:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "7106:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "7096:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7120:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7151:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7162:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7147:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7147:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7134:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7134:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "7124:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7209:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7218:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7221:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7211:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7211:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7211:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7181:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7189:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7178:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7178:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7175:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7234:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7291:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "7302:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7287:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7287:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7311:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "7260:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7260:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "7238:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "7248:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7328:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "7338:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "7328:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7355:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "7365:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "7355:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6890:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "6901:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6913:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "6921:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "6929:6:81",
                "type": ""
              }
            ],
            "src": "6833:546:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7535:507:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7545:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "7555:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "7549:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7566:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7584:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7595:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7580:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7580:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "7570:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7614:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7625:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7607:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7607:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7607:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7637:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "7648:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "7641:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7663:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "7683:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "7677:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7677:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "7667:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "7706:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7714:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7699:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7699:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7699:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7730:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7741:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7752:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7737:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7737:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "7730:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7764:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "7782:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7790:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7778:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7778:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "7768:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7802:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "7811:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "7806:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7870:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "7891:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "7906:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "7900:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "7900:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "7923:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "7928:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "7919:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "7919:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "7932:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "7915:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "7915:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "7896:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7896:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7884:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7884:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7884:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7949:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "7960:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "7965:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7956:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7956:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "7949:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7981:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "7995:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "8003:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7991:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7991:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "7981:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "7832:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7835:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "7829:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7829:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "7843:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7845:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "7854:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7857:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7850:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7850:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "7845:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "7825:3:81",
                    "statements": []
                  },
                  "src": "7821:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8025:11:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "8033:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "8025: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": "7504:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "7515:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "7526:4:81",
                "type": ""
              }
            ],
            "src": "7384:658:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8212:632:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8258:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8267:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8270:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8260:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8260:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8260:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8233:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8242:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "8229:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8229:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8254:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8225:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8225:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8222:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8283:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8310:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8297:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8297:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "8287:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8329:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "8339:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "8333:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8384:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8393:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8396:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8386:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8386:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8386:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "8372:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8380:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8369:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8369:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8366:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8409:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8485:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "8496:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8481:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8481:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8505:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "8435:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8435:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "8413:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "8423:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8522:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "8532:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "8522:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8549:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "8559:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "8549:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8576:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8609:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8620:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8605:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8605:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8592:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8592:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "8580:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8653:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8662:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8665:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8655:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8655:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8655:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "8639:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8649:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8636:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8636:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8633:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8678:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8754:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "8765:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8750:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8750:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8776:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "8704:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8704:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "8682:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "8692:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8793:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "8803:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "8793:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8820:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "8830:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "8820: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": "8154:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8165:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8177:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8185:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8193:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "8201:6:81",
                "type": ""
              }
            ],
            "src": "8047:797:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8983:458:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9029:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9038:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9041:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9031:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9031:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9031:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9004:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9013:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9000:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9000:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9025:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8996:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8996:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8993:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9054:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9080:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9067:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9067:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "9058:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "9124:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "9099:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9099:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9099:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9139:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "9149:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9139:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9163:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9194:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9205:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9190:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9190:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9177:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9177:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9167:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9252:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9261:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9264:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9254:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9254:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9254:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9224:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9232:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9221:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9221:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9218:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9277:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9353:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9364:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9349:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9349:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9373:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9303:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9303:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9281:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "9291:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9390:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "9400:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9390:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9417:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "9427:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "9417:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8933:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8944:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8956:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8964:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8972:6:81",
                "type": ""
              }
            ],
            "src": "8849:592:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9488:76:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9542:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9551:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9554:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9544:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9544:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9544:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "9511:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "9532:5:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "9525:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "9525:13:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "9518:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "9518:21:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "9508:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9508:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "9501:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9501:40:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9498:60:81"
                }
              ]
            },
            "name": "validator_revert_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "9477:5:81",
                "type": ""
              }
            ],
            "src": "9446:118:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9690:560:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9736:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9745:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9748:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9738:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9738:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9738:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9711:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9720:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9707:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9707:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9732:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9703:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9703:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9700:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9761:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9787:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9774:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9774:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "9765:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "9831:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "9806:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9806:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9806:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9846:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "9856:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9846:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9870:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9901:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9912:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9897:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9897:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9884:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9884:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9874:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9959:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9968:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9971:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9961:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9961:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9961:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9931:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9939:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9928:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9928:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9925:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9984:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10041:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "10052:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10037:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10037:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "10061:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "10010:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10010:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9988:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "9998:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10078:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "10088:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "10078:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10105:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "10115:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "10105:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10132:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10164:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10175:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10160:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10160:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10147:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10147:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "10136:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "10210:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "10188:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10188:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10188:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10227:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "10237:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "10227:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9632:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9643:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9655:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9663:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "9671:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "9679:6:81",
                "type": ""
              }
            ],
            "src": "9569:681:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10376:458:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10422:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10431:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10434:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10424:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10424:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10424:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10397:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10406:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "10393:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10393:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10418:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "10389:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10389:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10386:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10447:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10473:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10460:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10460:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "10451:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "10517:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "10492:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10492:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10492:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10532:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "10542:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "10532:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10556:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10587:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10598:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10583:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10583:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10570:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10570:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "10560:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10645:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10654:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10657:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10647:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10647:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10647:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "10617:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10625:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "10614:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10614:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10611:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10670:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10746:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "10757:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10742:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10742:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "10766:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "10696:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10696:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "10674:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "10684:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10783:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "10793:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "10783:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10810:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "10820:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "10810:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_uint80_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10326:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "10337:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "10349:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "10357:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "10365:6:81",
                "type": ""
              }
            ],
            "src": "10255:579:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10871:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10888:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10895:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10900:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "10891:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10891:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10881:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10881:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10881:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10928:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10931:4:81",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10921:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10921:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10921:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10952:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10955:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "10945:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10945:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10945:15:81"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "10839:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11016:230:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "11026:19:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11042:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "11036:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11036:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulIdentifier",
                      "src": "11026:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11054:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "11076:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nodeType": "YulIdentifier",
                                "src": "11092:4:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "11098:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11088:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11088:13:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "11107:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "11103:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11103:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "11084:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11084:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11072:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11072:40:81"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "11058:10:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11187:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "11189:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11189:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11189:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "11130:10:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11142:18:81",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "11127:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11127:34:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "11166:10:81"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "11178:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "11163:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11163:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "11124:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11124:62:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11121:88:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11225:2:81",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "11229:10:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11218:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11218:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11218:22:81"
                }
              ]
            },
            "name": "allocate_memory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "10996:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "11005:6:81",
                "type": ""
              }
            ],
            "src": "10971:275:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11309:129:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11353:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "11355:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11355:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11355:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11325:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11333:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11322:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11322:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11319:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11384:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "11404:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "11412:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11400:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11400:15:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "11421:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "11417:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11417:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "11396:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11396:29:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11427:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11392:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11392:40:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "11384:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "11289:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "11300:4:81",
                "type": ""
              }
            ],
            "src": "11251:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11518:263:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "11528:62:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "11582:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_string",
                          "nodeType": "YulIdentifier",
                          "src": "11553:28:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11553:36:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "11537:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11537:53:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "11528:5:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "array",
                        "nodeType": "YulIdentifier",
                        "src": "11606:5:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11613:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11599:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11599:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11599:21:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11658:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11667:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11670:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11660:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11660:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11660:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "11639:3:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "11644:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11635:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11635:16:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "11653:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11632:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11632:25:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11629:45:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "array",
                            "nodeType": "YulIdentifier",
                            "src": "11700:5:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11707:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11696:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11696:16:81"
                      },
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "11714:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11719:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "11683:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11683:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11683:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "array",
                                "nodeType": "YulIdentifier",
                                "src": "11750:5:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "11757:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11746:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11746:18:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11766:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11742:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11742:29:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11773:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11735:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11735:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11735:40:81"
                }
              ]
            },
            "name": "abi_decode_available_length_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "11487:3:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "11492:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "11500:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "11508:5:81",
                "type": ""
              }
            ],
            "src": "11443:338:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11839:169:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11888:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11897:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11900:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11890:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11890:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11890:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "11867:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "11875:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11863:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11863:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "11882:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "11859:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11859:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "11852:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11852:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11849:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11913:89:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "11961:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11969:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11957:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11957:17:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "11989:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "11976:12:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11976:20:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "11998:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_available_length_string",
                      "nodeType": "YulIdentifier",
                      "src": "11922:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11922:80:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "11913:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "11813:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "11821:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "11829:5:81",
                "type": ""
              }
            ],
            "src": "11786:222:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12120:436:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12166:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12175:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12178:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12168:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12168:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12168:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "12141:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12150:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "12137:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12137:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12162:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "12133:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12133:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12130:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12191:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12218:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12205:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12205:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "12195:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12237:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "12247:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "12241:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12292:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12301:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12304:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12294:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12294:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12294:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "12280:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12288:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12277:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12277:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12274:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12317:60:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12349:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "12360:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12345:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12345:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "12369:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string",
                      "nodeType": "YulIdentifier",
                      "src": "12327:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12327:50:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "12317:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12386:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12419:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12430:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12415:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12415:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12402:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12402:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "12390:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12463:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12472:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12475:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12465:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12465:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12465:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "12449:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12459:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12446:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12446:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12443:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12488:62:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12520:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "12531:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12516:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12516:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "12542:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string",
                      "nodeType": "YulIdentifier",
                      "src": "12498:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12498:52:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "12488:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12078:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "12089:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "12101:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "12109:6:81",
                "type": ""
              }
            ],
            "src": "12013:543:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12730:632:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12776:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12785:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12788:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12778:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12778:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12778:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "12751:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12760:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "12747:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12747:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12772:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "12743:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12743:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12740:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12801:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12828:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12815:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12815:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "12805:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12847:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "12857:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "12851:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12902:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12911:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12914:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12904:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12904:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12904:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "12890:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12898:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12887:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12887:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12884:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12927:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13003:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "13014:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12999:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12999:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13023:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12953:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12953:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "12931:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "12941:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13040:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "13050:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "13040:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13067:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "13077:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "13067:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13094:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13127:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13138:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13123:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13123:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13110:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13110:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "13098:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13171:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13180:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13183:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13173:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13173:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13173:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "13157:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "13167:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13154:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13154:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13151:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13196:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13272:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "13283:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13268:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13268:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13294:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "13222:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13222:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "13200:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "13210:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13311:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "13321:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "13311:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13338:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "13348:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "13338: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": "12672:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "12683:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "12695:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "12703:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "12711:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "12719:6:81",
                "type": ""
              }
            ],
            "src": "12561:801:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13471:436:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13517:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13526:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13529:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13519:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13519:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13519:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "13492:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13501:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "13488:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13488:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13513:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "13484:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13484:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13481:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13542:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13569:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13556:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13556:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "13546:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13622:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13631:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13634:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13624:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13624:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13624:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "13594:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13602:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13591:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13591:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13588:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13647:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13704:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "13715:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13700:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13700:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13724:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "13673:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13673:59:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "13651:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "13661:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13741:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "13751:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "13741:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13768:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "13778:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "13768:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13795:45:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13825:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13836:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13821:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13821:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13808:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13808:32:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "13799:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "13871:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "13849:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13849:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13849:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13886:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "13896:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "13886:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13421:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "13432:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13444:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "13452:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "13460:6:81",
                "type": ""
              }
            ],
            "src": "13367:540:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13996:298:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14042:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14051:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14054:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14044:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14044:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14044:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14017:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14026:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "14013:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14013:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14038:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "14009:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14009:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14006:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14067:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14093:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14080:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14080:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "14071:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "14137:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "14112:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14112:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14112:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14152:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "14162:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "14152:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14176:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14208:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14219:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14204:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14204:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14191:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14191:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "14180:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "14254:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "14232:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14232:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14232:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14271:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "14281:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "14271:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13954:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "13965:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13977:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "13985:6:81",
                "type": ""
              }
            ],
            "src": "13912:382:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14366:174:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14412:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14421:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14424:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14414:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14414:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14414:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14387:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14396:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "14383:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14383:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14408:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "14379:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14379:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14376:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14437:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14463:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14450:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14450:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "14441:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "14504:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "14482:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14482:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14482:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14519:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "14529:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "14519:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "14332:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "14343:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "14355:6:81",
                "type": ""
              }
            ],
            "src": "14299:241:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14631:329:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14677:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14686:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14689:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14679:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14679:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14679:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14652:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14661:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "14648:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14648:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14673:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "14644:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14644:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14641:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14702:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14728:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14715:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14715:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "14706:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "14772:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "14747:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14747:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14747:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14787:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "14797:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "14787:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14811:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14843:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14854:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14839:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14839:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14826:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14826:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "14815:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14912:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14921:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14924:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14914:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14914:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14914:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value_1",
                            "nodeType": "YulIdentifier",
                            "src": "14880:7:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value_1",
                                "nodeType": "YulIdentifier",
                                "src": "14893:7:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "14902:6:81",
                                "type": "",
                                "value": "0xffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "14889:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "14889:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "14877:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14877:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "14870:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14870:41:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14867:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14937:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "14947:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "14937:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint16",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "14589:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "14600:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "14612:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "14620:6:81",
                "type": ""
              }
            ],
            "src": "14545:415:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15147:750:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15193:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15202:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15205:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15195:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15195:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15195:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "15168:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15177:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "15164:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15164:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15189:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "15160:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15160:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15157:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15218:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15244:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15231:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15231:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "15222:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "15288:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "15263:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15263:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15263:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15303:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "15313:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "15303:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15327:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15358:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15369:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15354:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15354:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15341:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15341:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "15331:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15382:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "15392:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "15386:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15437:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15446:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15449:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15439:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15439:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15439:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "15425:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15433:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15422:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15422:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15419:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15462:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15538:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "15549:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15534:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15534:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15558:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "15488:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15488:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "15466:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "15476:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15575:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "15585:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "15575:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15602:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "15612:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "15602:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15629:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15662:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15673:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15658:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15658:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15645:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15645:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "15633:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15706:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15715:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15718:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15708:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15708:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15708:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "15692:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15702:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15689:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15689:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15686:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15731:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15807:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "15818:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15803:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15803:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15829:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "15757:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15757:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "15735:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "15745:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15846:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "15856:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "15846:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15873:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "15883:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "15873: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": "15081:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "15092:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "15104:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "15112:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "15120:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "15128:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "15136:6:81",
                "type": ""
              }
            ],
            "src": "14965:932:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16001:101:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "16011:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16023:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16034:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16019:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16019:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "16011:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16053:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "16068:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "16084:2:81",
                                    "type": "",
                                    "value": "80"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "16088:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "16080:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "16080:10:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "16092:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "16076:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "16076:18:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "16064:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16064:31:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16046:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16046:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16046:50:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint80__to_t_uint80__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "15970:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "15981:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "15992:4:81",
                "type": ""
              }
            ],
            "src": "15902:200:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16237:665:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16284:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16293:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16296:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16286:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16286:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16286:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "16258:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16267:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "16254:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16254:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16279:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "16250:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16250:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16247:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16309:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16335:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16322:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16322:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "16313:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "16379:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "16354:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16354:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16354:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16394:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "16404:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "16394:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16418:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16450:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16461:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16446:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16446:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16433:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16433:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "16422:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "16499:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "16474:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16474:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16474:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16516:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "16526:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "16516:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16542:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16569:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16580:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16565:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16565:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16552:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16552:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "16542:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16593:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16624:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16635:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16620:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16620:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16607:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16607:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "16597:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16682:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16691:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16694:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16684:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16684:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16684:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "16654:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16662:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16651:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16651:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16648:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16707:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16721:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "16732:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16717:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16717:22:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "16711:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16787:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16796:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16799:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16789:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16789:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16789:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "16766:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "16770:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "16762:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "16762:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "16777:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "16758:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16758:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "16751:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16751:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16748:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16812:84:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "16861:2:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16865:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16857:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16857:11:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "16883:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "16870:12:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16870:16:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16888:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_available_length_string",
                      "nodeType": "YulIdentifier",
                      "src": "16822:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16822:74:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "16812:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "16179:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "16190:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "16202:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "16210:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "16218:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "16226:6:81",
                "type": ""
              }
            ],
            "src": "16107:795:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16976:400:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16986:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "17006:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "17000:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17000:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "16990:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17028:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "17033:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17021:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17021:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17021:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17049:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "17059:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "17053:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17072:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17083:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "17088:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17079:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17079:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "17072:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17100:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "17118:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "17125:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17114:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17114:14:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "17104:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17137:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "17146:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "17141:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17205:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "17226:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "17241:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "17235:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "17235:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "17258:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "17263:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "17254:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "17254:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "17267:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "17250:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "17250:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "17231:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "17231:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "17219:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17219:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17219:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "17284:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "17295:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "17300:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "17291:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17291:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "17284:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "17316:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "17330:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "17338:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "17326:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17326:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "17316:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "17167:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "17170:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "17164:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17164:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "17178:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "17180:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "17189:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17192:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "17185:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17185:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "17180:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "17160:3:81",
                    "statements": []
                  },
                  "src": "17156:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17360:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "17367:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "17360:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_address_payable_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "16953:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "16960:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "16968:3:81",
                "type": ""
              }
            ],
            "src": "16907:469:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17548:118:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17565:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17576:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17558:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17558:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17558:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17588:72:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "17633:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17645:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17656:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17641:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17641:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_payable_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "17596:36:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17596:64:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "17588: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": "17517:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17528:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "17539:4:81",
                "type": ""
              }
            ],
            "src": "17381:285:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17916:244:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17933:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17944:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17926:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17926:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17926:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17956:78:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "18007:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18019:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18030:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18015:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18015:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_payable_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "17970:36:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17970:64:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "17960:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18054:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18065:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18050:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18050:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "18074:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18082:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18070:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18070:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18043:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18043:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18043:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18102:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "18139:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "18147:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "18110:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18110:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "18102: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": "17877:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "17888:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17896:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "17907:4:81",
                "type": ""
              }
            ],
            "src": "17671:489:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18213:123:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "18223:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "18245:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18232:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18232:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "18223:5:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18314:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18323:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18326:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18316:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18316:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18316:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "18274:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "18285:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "18300:2:81",
                                        "type": "",
                                        "value": "80"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "18304:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "18296:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "18296:10:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "18308:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "18292:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "18292:18:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "18281:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "18281:30:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "18271:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18271:41:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "18264:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18264:49:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18261:69:81"
                }
              ]
            },
            "name": "abi_decode_uint80",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "18192:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "18203:5:81",
                "type": ""
              }
            ],
            "src": "18165:171:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18427:233:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18473:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18482:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18485:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18475:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18475:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18475:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18448:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18457:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18444:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18444:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18469:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "18440:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18440:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18437:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18498:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18524:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18511:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18511:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "18502:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "18568:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "18543:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18543:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18543:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18583:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "18593:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "18583:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18607:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18639:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18650:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18635:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18635:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint80",
                      "nodeType": "YulIdentifier",
                      "src": "18617:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18617:37:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "18607:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint80",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18385:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "18396:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18408:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "18416:6:81",
                "type": ""
              }
            ],
            "src": "18341:319:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18752:301:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18798:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18807:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18810:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18800:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18800:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18800:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18773:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18782:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18769:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18769:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18794:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "18765:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18765:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18762:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18823:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18849:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18836:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18836:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "18827:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "18893:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "18868:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18868:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18868:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18908:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "18918:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "18908:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18932:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18964:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18975:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18960:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18960:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18947:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18947:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "18936:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "19013:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "18988:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18988:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18988:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19030:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "19040:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "19030:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18710:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "18721:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18733:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "18741:6:81",
                "type": ""
              }
            ],
            "src": "18665:388:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19232:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19249:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19260:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19242:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19242:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19242:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19283:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19294:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19279:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19279:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19299:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19272:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19272:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19272:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19322:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19333:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19318:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19318:18:81"
                      },
                      {
                        "hexValue": "41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f722061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "19338:34:81",
                        "type": "",
                        "value": "AdminControl: Must be owner or a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19311:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19311:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19311:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19393:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19404:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19389:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19389:18:81"
                      },
                      {
                        "hexValue": "646d696e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "19409:6:81",
                        "type": "",
                        "value": "dmin"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19382:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19382:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19382:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19425:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19437:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19448:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19433:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19433:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "19425:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "19209:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "19223:4:81",
                "type": ""
              }
            ],
            "src": "19058:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19518:325:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "19528:22:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19542:1:81",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "19545:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nodeType": "YulIdentifier",
                      "src": "19538:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19538:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "19528:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19559:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "19589:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19595:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "19585:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19585:12:81"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nodeType": "YulTypedName",
                      "src": "19563:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19636:31:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "19638:27:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nodeType": "YulIdentifier",
                              "src": "19652:6:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19660:4:81",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nodeType": "YulIdentifier",
                            "src": "19648:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19648:17:81"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "19638:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "19616:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "19609:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19609:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19606:61:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19726:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19747:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "19754:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "19759:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "19750:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "19750:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "19740:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19740:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19740:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19791:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19794:4:81",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "19784:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19784:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19784:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19819:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19822:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19812:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19812:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19812:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "19682:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "19705:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19713:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "19702:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19702:14:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "19679:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19679:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19676:161:81"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "19498:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "19507:6:81",
                "type": ""
              }
            ],
            "src": "19463:380:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20022:223:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20039:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20050:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20032:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20032:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20032:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20073:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20084:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20069:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20069:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20089:2:81",
                        "type": "",
                        "value": "33"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20062:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20062:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20062:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20112:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20123:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20108:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20108:18:81"
                      },
                      {
                        "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e65",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20128:34:81",
                        "type": "",
                        "value": "ERC721: approval to current owne"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20101:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20101:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20101:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20183:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20194:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20179:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20179:18:81"
                      },
                      {
                        "hexValue": "72",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20199:3:81",
                        "type": "",
                        "value": "r"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20172:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20172:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20172:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20212:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20224:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20235:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20220:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20220:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20212:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "19999:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20013:4:81",
                "type": ""
              }
            ],
            "src": "19848:397:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20424:251:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20441:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20452:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20434:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20434:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20434:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20475:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20486:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20471:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20471:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20491:2:81",
                        "type": "",
                        "value": "61"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20464:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20464:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20464:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20514:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20525:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20510:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20510:18:81"
                      },
                      {
                        "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20530:34:81",
                        "type": "",
                        "value": "ERC721: approve caller is not to"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20503:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20503:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20503:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20585:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20596:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20581:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20581:18:81"
                      },
                      {
                        "hexValue": "6b656e206f776e6572206f7220617070726f76656420666f7220616c6c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20601:31:81",
                        "type": "",
                        "value": "ken owner or approved for all"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20574:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20574:59:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20574:59:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20642:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20654:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20665:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20650:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20650:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20642:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20401:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20415:4:81",
                "type": ""
              }
            ],
            "src": "20250:425:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20854:167:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20871:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20882:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20864:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20864:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20864:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20905:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20916:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20901:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20901:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20921:2:81",
                        "type": "",
                        "value": "17"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20894:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20894:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20894:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20944:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20955:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20940:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20940:18:81"
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20960:19:81",
                        "type": "",
                        "value": "Nonexistent token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20933:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20933:47:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20933:47:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20989:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21001:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21012:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20997:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20997:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20989:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20831:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20845:4:81",
                "type": ""
              }
            ],
            "src": "20680:341:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21200:172:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21217:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21228:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21210:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21210:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21210:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21251:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21262:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21247:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21247:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21267:2:81",
                        "type": "",
                        "value": "22"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21240:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21240:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21240:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21290:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21301:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21286:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21286:18:81"
                      },
                      {
                        "hexValue": "4e6f20657874656e73696f6e20666f7220746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "21306:24:81",
                        "type": "",
                        "value": "No extension for token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21279:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21279:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21279:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21340:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21352:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21363:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "21348:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21348:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "21340:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21177:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "21191:4:81",
                "type": ""
              }
            ],
            "src": "21026:346:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21551:171:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21568:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21579:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21561:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21561:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21561:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21602:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21613:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21598:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21598:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21618:2:81",
                        "type": "",
                        "value": "21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21591:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21591:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21591:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21641:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21652:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21637:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21637:18:81"
                      },
                      {
                        "hexValue": "457874656e73696f6e20626c61636b6c6973746564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "21657:23:81",
                        "type": "",
                        "value": "Extension blacklisted"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21630:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21630:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21630:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21690:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21702:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21713:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "21698:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21698:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "21690:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21528:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "21542:4:81",
                "type": ""
              }
            ],
            "src": "21377:345:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21901:235:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21918:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21929:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21911:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21911:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21911:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21952:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21963:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21948:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21948:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21968:2:81",
                        "type": "",
                        "value": "45"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21941:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21941:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21941:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21991:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22002:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21987:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21987:18:81"
                      },
                      {
                        "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22007:34:81",
                        "type": "",
                        "value": "ERC721: caller is not token owne"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21980:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21980:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21980:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22062:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22073:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22058:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22058:18:81"
                      },
                      {
                        "hexValue": "72206f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22078:15:81",
                        "type": "",
                        "value": "r or approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22051:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22051:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22051:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22103:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22115:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22126:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22111:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22111:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "22103:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21878:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "21892:4:81",
                "type": ""
              }
            ],
            "src": "21727:409:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22173:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22190:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22197:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22202:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "22193:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22193:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22183:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22183:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22183:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22230:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22233:4:81",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22223:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22223:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22223:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22254:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22257:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "22247:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22247:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22247:15:81"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "22141:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22305:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22322:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22329:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22334:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "22325:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22325:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22315:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22315:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22315:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22362:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22365:4:81",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22355:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22355:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22355:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22386:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22389:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "22379:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22379:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22379:15:81"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "22273:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22452:88:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "22483:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "22485:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22485:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22485:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "22468:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22479:1:81",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "22475:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22475:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "22465:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22465:17:81"
                  },
                  "nodeType": "YulIf",
                  "src": "22462:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22514:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "22525:5:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22532:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22521:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22521:13:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "22514:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "22434:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "22444:3:81",
                "type": ""
              }
            ],
            "src": "22405:135:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22593:77:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "22603:16:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "22614:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "22617:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22610:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22610:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nodeType": "YulIdentifier",
                      "src": "22603:3:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "22642:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "22644:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22644:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22644:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "22634:1:81"
                      },
                      {
                        "name": "sum",
                        "nodeType": "YulIdentifier",
                        "src": "22637:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "22631:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22631:10:81"
                  },
                  "nodeType": "YulIf",
                  "src": "22628:36:81"
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "22576:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "22579:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nodeType": "YulTypedName",
                "src": "22585:3:81",
                "type": ""
              }
            ],
            "src": "22545:125:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22770:427:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "22780:51:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "ptr_to_tail",
                        "nodeType": "YulIdentifier",
                        "src": "22819:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "22806:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22806:25:81"
                  },
                  "variables": [
                    {
                      "name": "rel_offset_of_tail",
                      "nodeType": "YulTypedName",
                      "src": "22784:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "22920:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22929:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22932:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "22922:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22922:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22922:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "rel_offset_of_tail",
                            "nodeType": "YulIdentifier",
                            "src": "22854:18:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [],
                                    "functionName": {
                                      "name": "calldatasize",
                                      "nodeType": "YulIdentifier",
                                      "src": "22882:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "22882:14:81"
                                  },
                                  {
                                    "name": "base_ref",
                                    "nodeType": "YulIdentifier",
                                    "src": "22898:8:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "22878:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "22878:29:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "22913:2:81",
                                    "type": "",
                                    "value": "30"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "22909:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "22909:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "22874:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "22874:43:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "22850:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22850:68:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "22843:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22843:76:81"
                  },
                  "nodeType": "YulIf",
                  "src": "22840:96:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "22945:47:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "base_ref",
                        "nodeType": "YulIdentifier",
                        "src": "22963:8:81"
                      },
                      {
                        "name": "rel_offset_of_tail",
                        "nodeType": "YulIdentifier",
                        "src": "22973:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22959:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22959:33:81"
                  },
                  "variables": [
                    {
                      "name": "addr_1",
                      "nodeType": "YulTypedName",
                      "src": "22949:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23001:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "addr_1",
                        "nodeType": "YulIdentifier",
                        "src": "23024:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "23011:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23011:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "23001:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "23074:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23083:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23086:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "23076:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23076:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23076:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "23046:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23054:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "23043:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23043:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "23040:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23099:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "addr_1",
                        "nodeType": "YulIdentifier",
                        "src": "23111:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23119:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23107:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23107:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "addr",
                      "nodeType": "YulIdentifier",
                      "src": "23099:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "23175:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23184:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23187:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "23177:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23177:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23177:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "addr",
                        "nodeType": "YulIdentifier",
                        "src": "23140:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "calldatasize",
                              "nodeType": "YulIdentifier",
                              "src": "23150:12:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "23150:14:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "23166:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "23146:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23146:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "sgt",
                      "nodeType": "YulIdentifier",
                      "src": "23136:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23136:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "23133:58:81"
                }
              ]
            },
            "name": "access_calldata_tail_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "base_ref",
                "nodeType": "YulTypedName",
                "src": "22727:8:81",
                "type": ""
              },
              {
                "name": "ptr_to_tail",
                "nodeType": "YulTypedName",
                "src": "22737:11:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "addr",
                "nodeType": "YulTypedName",
                "src": "22753:4:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "22759:6:81",
                "type": ""
              }
            ],
            "src": "22675:522:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23271:115:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "23317:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23326:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23329:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "23319:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23319:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23319:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "23292:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23301:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "23288:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23288:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23313:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "23284:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23284:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "23281:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23342:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23370:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint80",
                      "nodeType": "YulIdentifier",
                      "src": "23352:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23352:28:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "23342:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint80",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23237:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "23248:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "23260:6:81",
                "type": ""
              }
            ],
            "src": "23202:184:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23565:181:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23582:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23593:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23575:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23575:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23575:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23616:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23627:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23612:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23612:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23632:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23605:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23605:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23605:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23655:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23666:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23651:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23651:18:81"
                      },
                      {
                        "hexValue": "43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "23671:33:81",
                        "type": "",
                        "value": "Caller is not owner or approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23644:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23644:61:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23644:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23714:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23726:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23737:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23722:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23722:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "23714:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23542:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23556:4:81",
                "type": ""
              }
            ],
            "src": "23391:355:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23925:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23942:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23953:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23935:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23935:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23935:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23976:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23987:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23972:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23972:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23992:2:81",
                        "type": "",
                        "value": "46"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23965:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23965:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23965:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24015:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24026:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24011:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24011:18:81"
                      },
                      {
                        "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24031:34:81",
                        "type": "",
                        "value": "Initializable: contract is alrea"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24004:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24004:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24004:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24086:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24097:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24082:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24082:18:81"
                      },
                      {
                        "hexValue": "647920696e697469616c697a6564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24102:16:81",
                        "type": "",
                        "value": "dy initialized"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24075:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24075:44:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24075:44:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24128:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24140:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24151:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24136:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24136:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24128:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23902:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23916:4:81",
                "type": ""
              }
            ],
            "src": "23751:410:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24273:87:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "24283:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24295:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24306:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24291:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24291:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24283:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24325:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "24340:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24348:4:81",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "24336:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24336:17:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24318:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24318:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24318:36:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24242:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "24253:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24264:4:81",
                "type": ""
              }
            ],
            "src": "24166:194:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24539:163:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24556:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24567:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24549:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24549:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24549:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24590:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24601:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24586:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24586:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24606:2:81",
                        "type": "",
                        "value": "13"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24579:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24579:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24579:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24629:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24640:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24625:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24625:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24645:15:81",
                        "type": "",
                        "value": "Invalid input"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24618:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24618:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24618:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24670:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24682:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24693:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24678:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24678:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24670:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24516:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24530:4:81",
                "type": ""
              }
            ],
            "src": "24365:337:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24881:174:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24898:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24909:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24891:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24891:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24891:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24932:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24943:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24928:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24928:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24948:2:81",
                        "type": "",
                        "value": "24"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24921:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24921:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24921:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24971:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24982:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24967:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24967:18:81"
                      },
                      {
                        "hexValue": "4552433732313a20696e76616c696420746f6b656e204944",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24987:26:81",
                        "type": "",
                        "value": "ERC721: invalid token ID"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24960:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24960:54:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24960:54:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25023:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25035:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25046:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25031:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25031:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25023:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24858:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24872:4:81",
                "type": ""
              }
            ],
            "src": "24707:348:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25234:231:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25251:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25262:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25244:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25244:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25244:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25285:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25296:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25281:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25281:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25301:2:81",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25274:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25274:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25274:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25324:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25335:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25320:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25320:18:81"
                      },
                      {
                        "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f742061207661",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25340:34:81",
                        "type": "",
                        "value": "ERC721: address zero is not a va"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25313:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25313:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25313:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25395:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25406:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25391:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25391:18:81"
                      },
                      {
                        "hexValue": "6c6964206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25411:11:81",
                        "type": "",
                        "value": "lid owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25384:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25384:39:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25384:39:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25432:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25444:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25455:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25440:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25440:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25432:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25211:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25225:4:81",
                "type": ""
              }
            ],
            "src": "25060:405:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25644:228:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25661:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25672:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25654:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25654:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25654:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25695:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25706:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25691:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25691:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25711:2:81",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25684:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25684:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25684:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25734:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25745:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25730:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25730:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25750:34:81",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25723:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25723:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25723:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25805:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25816:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25801:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25801:18:81"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25821:8:81",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25794:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25794:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25794:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25839:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25851:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25862:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25847:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25847:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25839:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25621:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25635:4:81",
                "type": ""
              }
            ],
            "src": "25470:402:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26051:175:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26068:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26079:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26061:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26061:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26061:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26102:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26113:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26098:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26098:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26118:2:81",
                        "type": "",
                        "value": "25"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26091:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26091:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26091:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26141:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26152:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26137:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26137:18:81"
                      },
                      {
                        "hexValue": "43616e6e6f7420626c61636b6c69737420796f757273656c66",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26157:27:81",
                        "type": "",
                        "value": "Cannot blacklist yourself"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26130:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26130:55:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26130:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26194:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26206:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26217:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26202:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26202:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26194:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_0cc452069841e70d1cdcec58868ea025555fa12c1e760cb45ef052b3f01f1f1e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26028:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26042:4:81",
                "type": ""
              }
            ],
            "src": "25877:349:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26405:163:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26422:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26433:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26415:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26415:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26415:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26456:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26467:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26452:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26452:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26472:2:81",
                        "type": "",
                        "value": "13"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26445:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26445:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26445:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26495:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26506:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26491:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26491:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26511:15:81",
                        "type": "",
                        "value": "Invalid token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26484:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26484:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26484:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26536:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26548:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26559:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26544:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26544:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26536:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26382:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26396:4:81",
                "type": ""
              }
            ],
            "src": "26231:337:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26629:65:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26646:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "ptr",
                        "nodeType": "YulIdentifier",
                        "src": "26649:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26639:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26639:14:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26639:14:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26662:26:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26680:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26683:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "keccak256",
                      "nodeType": "YulIdentifier",
                      "src": "26670:9:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26670:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "data",
                      "nodeType": "YulIdentifier",
                      "src": "26662:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_dataslot_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "ptr",
                "nodeType": "YulTypedName",
                "src": "26612:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "26620:4:81",
                "type": ""
              }
            ],
            "src": "26573:121:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26780:464:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "26813:425:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "26827:11:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "26837:1:81",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "26831:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "26858:2:81"
                            },
                            {
                              "name": "array",
                              "nodeType": "YulIdentifier",
                              "src": "26862:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "26851:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26851:17:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "26851:17:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "26881:31:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "26903:2:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "26907:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "26893:9:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26893:19:81"
                        },
                        "variables": [
                          {
                            "name": "data",
                            "nodeType": "YulTypedName",
                            "src": "26885:4:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "26925:57:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "26948:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "26958:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "startIndex",
                                      "nodeType": "YulIdentifier",
                                      "src": "26965:10:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "26977:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "26961:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "26961:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "26954:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "26954:27:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "26944:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26944:38:81"
                        },
                        "variables": [
                          {
                            "name": "deleteStart",
                            "nodeType": "YulTypedName",
                            "src": "26929:11:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "27019:23:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "27021:19:81",
                              "value": {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "27036:4:81"
                              },
                              "variableNames": [
                                {
                                  "name": "deleteStart",
                                  "nodeType": "YulIdentifier",
                                  "src": "27021:11:81"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "startIndex",
                              "nodeType": "YulIdentifier",
                              "src": "27001:10:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "27013:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "26998:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26998:20:81"
                        },
                        "nodeType": "YulIf",
                        "src": "26995:47:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "27055:41:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "27069:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "27079:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "27086:3:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "27091:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "27082:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "27082:12:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "27075:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "27075:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "27065:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27065:31:81"
                        },
                        "variables": [
                          {
                            "name": "_2",
                            "nodeType": "YulTypedName",
                            "src": "27059:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "27109:24:81",
                        "value": {
                          "name": "deleteStart",
                          "nodeType": "YulIdentifier",
                          "src": "27122:11:81"
                        },
                        "variables": [
                          {
                            "name": "start",
                            "nodeType": "YulTypedName",
                            "src": "27113:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "27207:21:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "27216:5:81"
                                  },
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "27223:2:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "27209:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "27209:17:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "27209:17:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "start",
                              "nodeType": "YulIdentifier",
                              "src": "27157:5:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "27164:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "27154:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27154:13:81"
                        },
                        "nodeType": "YulForLoop",
                        "post": {
                          "nodeType": "YulBlock",
                          "src": "27168:26:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "27170:22:81",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "27183:5:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "27190:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "27179:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "27179:13:81"
                              },
                              "variableNames": [
                                {
                                  "name": "start",
                                  "nodeType": "YulIdentifier",
                                  "src": "27170:5:81"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nodeType": "YulBlock",
                          "src": "27150:3:81",
                          "statements": []
                        },
                        "src": "27146:82:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "26796:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26801:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "26793:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26793:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "26790:448:81"
                }
              ]
            },
            "name": "clean_up_bytearray_end_slots_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "26752:5:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "26759:3:81",
                "type": ""
              },
              {
                "name": "startIndex",
                "nodeType": "YulTypedName",
                "src": "26764:10:81",
                "type": ""
              }
            ],
            "src": "26699:545:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27334:81:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "27344:65:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "data",
                            "nodeType": "YulIdentifier",
                            "src": "27359:4:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "27377:1:81",
                                        "type": "",
                                        "value": "3"
                                      },
                                      {
                                        "name": "len",
                                        "nodeType": "YulIdentifier",
                                        "src": "27380:3:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "27373:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "27373:11:81"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "27390:1:81",
                                        "type": "",
                                        "value": "0"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nodeType": "YulIdentifier",
                                      "src": "27386:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "27386:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shr",
                                  "nodeType": "YulIdentifier",
                                  "src": "27369:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "27369:24:81"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "27365:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "27365:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "27355:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27355:40:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27401:1:81",
                            "type": "",
                            "value": "1"
                          },
                          {
                            "name": "len",
                            "nodeType": "YulIdentifier",
                            "src": "27404:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "27397:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27397:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "27352:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27352:57:81"
                  },
                  "variableNames": [
                    {
                      "name": "used",
                      "nodeType": "YulIdentifier",
                      "src": "27344:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "extract_used_part_and_set_length_of_short_byte_array",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "27311:4:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "27317:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "used",
                "nodeType": "YulTypedName",
                "src": "27325:4:81",
                "type": ""
              }
            ],
            "src": "27249:166:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27523:1103:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "27564:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "27566:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27566:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "27566:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "27539:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27544:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "27536:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27536:27:81"
                  },
                  "nodeType": "YulIf",
                  "src": "27533:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "27639:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "27677:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "27671:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "27671:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "27645:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27645:38:81"
                      },
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "27685:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "27595:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27595:94:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27595:94:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "27698:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "27715:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "27702:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "27759:609:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "27773:32:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "27792:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "27801:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "27797:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "27797:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "27788:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "27788:17:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "27777:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "27818:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "27862:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "27832:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "27832:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "27822:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "27880:18:81",
                            "value": {
                              "name": "srcOffset",
                              "nodeType": "YulIdentifier",
                              "src": "27889:9:81"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "27884:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "27968:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "27993:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "28018:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "28023:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "28014:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "28014:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "calldataload",
                                          "nodeType": "YulIdentifier",
                                          "src": "28001:12:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "28001:33:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "27986:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "27986:49:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "27986:49:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "28052:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "28066:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "28074:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "28062:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28062:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "28052:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "28093:33:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "28110:9:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "28121:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "28106:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28106:20:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "28093:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "27922:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "27925:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "27919:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "27919:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "27934:21:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "27936:17:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "27945:1:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "27948:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "27941:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "27941:12:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "27936:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "27915:3:81",
                              "statements": []
                            },
                            "src": "27911:229:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "28185:127:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "28210:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "name": "src",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "28239:3:81"
                                                  },
                                                  {
                                                    "name": "srcOffset",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "28244:9:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "add",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "28235:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "28235:19:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "calldataload",
                                              "nodeType": "YulIdentifier",
                                              "src": "28222:12:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "28222:33:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "28273:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "len",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "28276:3:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "28269:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "28269:11:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "28282:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "28265:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "28265:21:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "28292:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "28288:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "28288:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "28261:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "28261:34:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "28257:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "28257:39:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "28218:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "28218:79:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "28203:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28203:95:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "28203:95:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "28159:7:81"
                                },
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "28168:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "28156:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28156:16:81"
                            },
                            "nodeType": "YulIf",
                            "src": "28153:159:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "28332:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "28346:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "len",
                                          "nodeType": "YulIdentifier",
                                          "src": "28349:3:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "28342:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "28342:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "28355:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "28338:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "28338:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "28325:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28325:33:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "28325:33:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "27752:616:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27757:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "28385:235:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "28399:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "28412:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "28403:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "28445:74:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "28463:42:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "28489:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "28494:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "28485:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "28485:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "calldataload",
                                      "nodeType": "YulIdentifier",
                                      "src": "28472:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28472:33:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "28463:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "len",
                              "nodeType": "YulIdentifier",
                              "src": "28429:3:81"
                            },
                            "nodeType": "YulIf",
                            "src": "28426:93:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "28539:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "28598:5:81"
                                    },
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "28605:3:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "28545:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "28545:64:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "28532:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28532:78:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "28532:78:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "28377:243:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "27735:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27740:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "27732:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27732:11:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "27725: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": "27503:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "27509:3:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "27514:3:81",
                "type": ""
              }
            ],
            "src": "27420:1206:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28896:810:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "28906:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28924:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28935:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "28920:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28920:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "28910:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28954:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28965:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28947:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28947:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28947:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "28977:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "28988:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "28981:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "29010:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "29018:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29003:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29003:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29003:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "29034:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "29045:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29056:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "29041:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29041:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "29034:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29068:20:81",
                  "value": {
                    "name": "value0",
                    "nodeType": "YulIdentifier",
                    "src": "29082:6:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "29072:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29097:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "29106:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "29101:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29165:255:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "29179:33:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "29205:6:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "29192:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29192:20:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "29183:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "29250:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "29225:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29225:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29225:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "29276:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "29285:5:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "29300:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "29305:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "29296:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "29296:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "29309:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "29292:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "29292:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "29281:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29281:31:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "29269:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29269:44:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29269:44:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "29326:14:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "29336:4:81",
                          "type": "",
                          "value": "0x20"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "29330:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "29353:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "29364:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "29369:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "29360:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29360:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "29353:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "29385:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "29399:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "29407:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "29395:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29395:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "29385:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "29127:1:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "29130:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "29124:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29124:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "29138:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "29140:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "29149:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29152:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "29145:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29145:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "29140:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "29120:3:81",
                    "statements": []
                  },
                  "src": "29116:304:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "29440:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29451:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29436:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29436:20:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "29462:3:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "29467:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "29458:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29458:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29429:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29429:49:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29429:49:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "29494:3:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "29499:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29487:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29487:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29487:19:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29550:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29559:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29562:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "29552:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29552:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29552:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "29521:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "29537:3:81",
                                "type": "",
                                "value": "251"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "29542:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "29533:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "29533:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29546:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "29529:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29529:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "29518:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29518:31:81"
                  },
                  "nodeType": "YulIf",
                  "src": "29515:51:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29575:28:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29593:1:81",
                        "type": "",
                        "value": "5"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "29596:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nodeType": "YulIdentifier",
                      "src": "29589:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29589:14:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "29579:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "29629:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29634:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29625:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29625:14:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "29641:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "29649:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "29612:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29612:44:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29612:44:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "29665:35:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "29681:3:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "29686:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29677:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29677:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29695:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "29673:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29673:27:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "29665: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": "28841:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "28852:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "28860:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "28868:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "28876:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "28887:4:81",
                "type": ""
              }
            ],
            "src": "28631:1075:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29885:227:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "29902:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29913:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29895:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29895:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29895:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "29936:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29947:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29932:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29932:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29952:2:81",
                        "type": "",
                        "value": "37"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29925:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29925:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29925:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "29975:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29986:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29971:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29971:18:81"
                      },
                      {
                        "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f727265637420",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "29991:34:81",
                        "type": "",
                        "value": "ERC721: transfer from incorrect "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29964:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29964:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29964:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30046:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30057:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30042:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30042:18:81"
                      },
                      {
                        "hexValue": "6f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "30062:7:81",
                        "type": "",
                        "value": "owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30035:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30035:35:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30035:35:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "30079:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30091:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30102:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "30087:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30087:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "30079:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "29862:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "29876:4:81",
                "type": ""
              }
            ],
            "src": "29711:401:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30291:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30308:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30319:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30301:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30301:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30301:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30342:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30353:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30338:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30338:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30358:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30331:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30331:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30331:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30381:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30392:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30377:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30377:18:81"
                      },
                      {
                        "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f20616464",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "30397:34:81",
                        "type": "",
                        "value": "ERC721: transfer to the zero add"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30370:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30370:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30370:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30452:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30463:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30448:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30448:18:81"
                      },
                      {
                        "hexValue": "72657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "30468:6:81",
                        "type": "",
                        "value": "ress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30441:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30441:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30441:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "30484:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30496:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30507:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "30492:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30492:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "30484:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "30268:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "30282:4:81",
                "type": ""
              }
            ],
            "src": "30117:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30696:181:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30713:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30724:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30706:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30706:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30706:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30747:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30758:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30743:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30743:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30763:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30736:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30736:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30736:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30786:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30797:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30782:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30782:18:81"
                      },
                      {
                        "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "30802:33:81",
                        "type": "",
                        "value": "ReentrancyGuard: reentrant call"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30775:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30775:61:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30775:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "30845:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30857:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30868:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "30853:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30853:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "30845:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "30673:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "30687:4:81",
                "type": ""
              }
            ],
            "src": "30522:355:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31056:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "31073:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31084:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "31066:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31066:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31066:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "31107:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31118:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "31103:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31103:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31123:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "31096:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31096:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31096:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "31146:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31157:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "31142:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31142:18:81"
                      },
                      {
                        "hexValue": "4d757374206265207265676973746572656420657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "31162:30:81",
                        "type": "",
                        "value": "Must be registered extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "31135:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31135:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31135:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "31202:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "31214:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31225:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "31210:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31210:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "31202:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5feba5446d49a024c011d96fb2b4cea222ce6e949e033fe53cd137156df8a35f__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "31033:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "31047:4:81",
                "type": ""
              }
            ],
            "src": "30882:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31335:1256:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31345:24:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "31365:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "31359:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31359:10:81"
                  },
                  "variables": [
                    {
                      "name": "newLen",
                      "nodeType": "YulTypedName",
                      "src": "31349:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "31412:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "31414:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31414:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "31414:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "31384:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31392:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "31381:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31381:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "31378:56:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "31487:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "31525:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "31519:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "31519:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "31493:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31493:38:81"
                      },
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "31533:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "31443:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31443:97:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31443:97:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31549:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "31566:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "31553:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31576:23:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "31595:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "srcOffset_1",
                      "nodeType": "YulTypedName",
                      "src": "31580:11:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "31608:24:81",
                  "value": {
                    "name": "srcOffset_1",
                    "nodeType": "YulIdentifier",
                    "src": "31621:11:81"
                  },
                  "variableNames": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulIdentifier",
                      "src": "31608:9:81"
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "31678:656:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "31692:35:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "newLen",
                                  "nodeType": "YulIdentifier",
                                  "src": "31711:6:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "31723:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "31719:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "31719:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "31707:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31707:20:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "31696:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "31740:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "31784:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "31754:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31754:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "31744:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "31802:10:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "31811:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "31806:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "31889:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "31914:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "31932:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "31937:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "31928:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "31928:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "mload",
                                          "nodeType": "YulIdentifier",
                                          "src": "31922:5:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "31922:26:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "31907:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31907:42:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "31907:42:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "31966:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "31980:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "31988:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "31976:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31976:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "31966:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "32007:40:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "32024:9:81"
                                      },
                                      {
                                        "name": "srcOffset_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "32035:11:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "32020:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32020:27:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "32007:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "31836:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "31839:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "31833:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31833:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "31848:28:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "31850:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "31859:1:81"
                                      },
                                      {
                                        "name": "srcOffset_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "31862:11:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "31855:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31855:19:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "31850:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "31829:3:81",
                              "statements": []
                            },
                            "src": "31825:236:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "32109:166:81",
                              "statements": [
                                {
                                  "nodeType": "YulVariableDeclaration",
                                  "src": "32127:43:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "32154:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "32159:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "32150:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "32150:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "32144:5:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32144:26:81"
                                  },
                                  "variables": [
                                    {
                                      "name": "lastValue",
                                      "nodeType": "YulTypedName",
                                      "src": "32131:9:81",
                                      "type": ""
                                    }
                                  ]
                                },
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "32194:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "lastValue",
                                            "nodeType": "YulIdentifier",
                                            "src": "32206:9:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "32233:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "newLen",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "32236:6:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "32229:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "32229:14:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "32245:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "32225:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "32225:24:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "32255:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "32251:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "32251:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "32221:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "32221:37:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "32217:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "32217:42:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "32202:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "32202:58:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "32187:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32187:74:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "32187:74:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "32080:7:81"
                                },
                                {
                                  "name": "newLen",
                                  "nodeType": "YulIdentifier",
                                  "src": "32089:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "32077:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32077:19:81"
                            },
                            "nodeType": "YulIf",
                            "src": "32074:201:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "32295:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "32309:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "newLen",
                                          "nodeType": "YulIdentifier",
                                          "src": "32312:6:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "32305:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "32305:14:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "32321:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "32301:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "32301:22:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "32288:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32288:36:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "32288:36:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "31671:663:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31676:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "32351:234:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "32365:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32378:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "32369:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "32414:67:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "32432:35:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "32451:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "32456:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "32447:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "32447:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "32441:5:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32441:26:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "32432:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "newLen",
                              "nodeType": "YulIdentifier",
                              "src": "32395:6:81"
                            },
                            "nodeType": "YulIf",
                            "src": "32392:89:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "32501:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "32560:5:81"
                                    },
                                    {
                                      "name": "newLen",
                                      "nodeType": "YulIdentifier",
                                      "src": "32567:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "32507:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "32507:67:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "32494:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32494:81:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "32494:81:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "32343:242:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "31651:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31659:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "31648:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31648:14:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "31641: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": "31320:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "31326:3:81",
                "type": ""
              }
            ],
            "src": "31239:1352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32770:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "32787:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32798:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32780:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32780:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32780:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "32821:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "32832:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "32817:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32817:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32837:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32810:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32810:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32810:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "32860:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "32871:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "32856:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32856:18:81"
                      },
                      {
                        "hexValue": "4d6f7265207468616e203120726f79616c7479207265636569766572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "32876:30:81",
                        "type": "",
                        "value": "More than 1 royalty receiver"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32849:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32849:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32849:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "32916:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "32928:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32939:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "32924:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32924:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "32916:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_74694d19c1b4be9a45fa733d1aaae2782afce905305cd809636e222af28aa3f3__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "32747:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "32761:4:81",
                "type": ""
              }
            ],
            "src": "32596:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33005:116:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "33015:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "33030:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "33033:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "mul",
                      "nodeType": "YulIdentifier",
                      "src": "33026:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33026:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "product",
                      "nodeType": "YulIdentifier",
                      "src": "33015:7:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "33093:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "33095:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33095:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33095:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "nodeType": "YulIdentifier",
                                "src": "33064:1:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "33057:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "33057:9:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "y",
                                "nodeType": "YulIdentifier",
                                "src": "33071:1:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "product",
                                    "nodeType": "YulIdentifier",
                                    "src": "33078:7:81"
                                  },
                                  {
                                    "name": "x",
                                    "nodeType": "YulIdentifier",
                                    "src": "33087:1:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "div",
                                  "nodeType": "YulIdentifier",
                                  "src": "33074:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "33074:15:81"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nodeType": "YulIdentifier",
                              "src": "33068:2:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "33068:22:81"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nodeType": "YulIdentifier",
                          "src": "33054:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33054:37:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "33047:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33047:45:81"
                  },
                  "nodeType": "YulIf",
                  "src": "33044:71:81"
                }
              ]
            },
            "name": "checked_mul_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "32984:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "32987:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "product",
                "nodeType": "YulTypedName",
                "src": "32993:7:81",
                "type": ""
              }
            ],
            "src": "32953:168:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33158:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33175:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33182:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33187:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "33178:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33178:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33168:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33168:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33168:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33215:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33218:4:81",
                        "type": "",
                        "value": "0x12"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33208:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33208:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33208:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33239:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33242:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "33232:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33232:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33232:15:81"
                }
              ]
            },
            "name": "panic_error_0x12",
            "nodeType": "YulFunctionDefinition",
            "src": "33126:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33304:171:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "33335:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33356:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "33363:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "33368:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "33359:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "33359:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "33349:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33349:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33349:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33400:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33403:4:81",
                              "type": "",
                              "value": "0x12"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "33393:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33393:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33393:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33428:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33431:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "33421:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33421:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33421:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "33324:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "33317:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33317:9:81"
                  },
                  "nodeType": "YulIf",
                  "src": "33314:132:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "33455:14:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "33464:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "33467:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "div",
                      "nodeType": "YulIdentifier",
                      "src": "33460:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33460:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nodeType": "YulIdentifier",
                      "src": "33455:1:81"
                    }
                  ]
                }
              ]
            },
            "name": "checked_div_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "33289:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "33292:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nodeType": "YulTypedName",
                "src": "33298:1:81",
                "type": ""
              }
            ],
            "src": "33258:217:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33654:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33671:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33682:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33664:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33664:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33664:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "33705:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33716:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33701:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33701:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33721:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33694:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33694:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33694:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "33744:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33755:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33740:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33740:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "33760:34:81",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33733:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33733:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33733:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "33804:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33816:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33827:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "33812:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33812:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "33804:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "33631:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "33645:4:81",
                "type": ""
              }
            ],
            "src": "33480:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34015:169:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34032:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34043:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34025:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34025:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34025:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34066:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34077:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34062:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34062:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34082:2:81",
                        "type": "",
                        "value": "19"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34055:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34055:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34055:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34105:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34116:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34101:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34101:18:81"
                      },
                      {
                        "hexValue": "546f6f206d616e7920657874656e73696f6e73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34121:21:81",
                        "type": "",
                        "value": "Too many extensions"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34094:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34094:49:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34094:49:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34152:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34164:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34175:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "34160:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34160:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "34152:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_21f6ef9796c821924c8451552637a275db9d13fc80db87bcd51e231390e84cc3__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "33992:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "34006:4:81",
                "type": ""
              }
            ],
            "src": "33841:343:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34235:151:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "34245:16:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "34255:6:81",
                    "type": "",
                    "value": "0xffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "34249:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "34270:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "34289:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "34296:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "34285:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34285:14:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "34274:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "34327:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "34329:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34329:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34329:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "34314:7:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "34323:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "34311:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34311:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "34308:41:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34358:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "34369:7:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34378:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "34365:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34365:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "34358:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint16",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "34217:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "34227:3:81",
                "type": ""
              }
            ],
            "src": "34189:197:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34565:233:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34582:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34593:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34575:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34575:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34575:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34616:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34627:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34612:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34612:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34632:2:81",
                        "type": "",
                        "value": "43"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34605:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34605:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34605:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34655:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34666:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34651:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34651:18:81"
                      },
                      {
                        "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34671:34:81",
                        "type": "",
                        "value": "Initializable: contract is not i"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34644:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34644:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34644:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34726:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34737:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34722:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34722:18:81"
                      },
                      {
                        "hexValue": "6e697469616c697a696e67",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34742:13:81",
                        "type": "",
                        "value": "nitializing"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34715:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34715:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34715:41:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34765:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34777:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34788:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "34773:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34773:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "34765:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "34542:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "34556:4:81",
                "type": ""
              }
            ],
            "src": "34391:407:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34977:175:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34994:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35005:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34987:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34987:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34987:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35028:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35039:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35024:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35024:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35044:2:81",
                        "type": "",
                        "value": "25"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35017:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35017:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35017:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35067:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35078:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35063:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35063:18:81"
                      },
                      {
                        "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35083:27:81",
                        "type": "",
                        "value": "ERC721: approve to caller"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35056:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35056:55:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35056:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35120:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35132:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35143:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35128:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35128:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "35120:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "34954:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "34968:4:81",
                "type": ""
              }
            ],
            "src": "34803:349:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35331:240:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35348:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35359:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35341:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35341:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35341:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35382:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35393:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35378:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35378:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35398:2:81",
                        "type": "",
                        "value": "50"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35371:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35371:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35371:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35421:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35432:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35417:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35417:18:81"
                      },
                      {
                        "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35437:34:81",
                        "type": "",
                        "value": "ERC721: transfer to non ERC721Re"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35410:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35410:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35410:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35492:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35503:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35488:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35488:18:81"
                      },
                      {
                        "hexValue": "63656976657220696d706c656d656e746572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35508:20:81",
                        "type": "",
                        "value": "ceiver implementer"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35481:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35481:48:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35481:48:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35538:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35550:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35561:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35546:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35546:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "35538:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "35308:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "35322:4:81",
                "type": ""
              }
            ],
            "src": "35157:414:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35653:114:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "35697:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "35699:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35699:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35699:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "35669:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35677:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "35666:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35666:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "35663:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35728:33:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35744:1:81",
                            "type": "",
                            "value": "5"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "35747:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "35740:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35740:14:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35756:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35736:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35736:25:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "35728:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_array_address_payable_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "35633:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "35644:4:81",
                "type": ""
              }
            ],
            "src": "35576:191:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35847:592:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "35896:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35905:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35908:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "35898:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35898:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35898:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "35875:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "35883:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "35871:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "35871:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "35890:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "35867:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35867:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "35860:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35860:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "35857:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "35921:23:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "35937:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "35931:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35931:13:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "35925:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "35953:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "35963:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "35957:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "35976:79:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "36051:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_array_address_payable_dyn",
                          "nodeType": "YulIdentifier",
                          "src": "36003:47:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36003:51:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "35987:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35987:68:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "35980:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36064:16:81",
                  "value": {
                    "name": "dst",
                    "nodeType": "YulIdentifier",
                    "src": "36077:3:81"
                  },
                  "variables": [
                    {
                      "name": "dst_1",
                      "nodeType": "YulTypedName",
                      "src": "36068:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "36096:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "36101:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36089:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36089:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36089:15:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36113:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "36124:3:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "36129:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36120:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36120:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "36113:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36141:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "36163:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "36175:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "36178:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "36171:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "36171:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36159:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36159:23:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "36184:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36155:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36155:32:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "36145:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36215:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36224:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36227:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "36217:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36217:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36217:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "36202:6:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "36210:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "36199:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36199:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "36196:35:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36240:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "36255:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "36263:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36251:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36251:15:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "36244:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36331:79:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "36352:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "36363:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "36357:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "36357:10:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "36345:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36345:23:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36345:23:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "36381:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "36392:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "36397:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "36388:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36388:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "36381:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "36286:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "36291:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "36283:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36283:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "36299:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "36301:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "36312:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "36317:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "36308:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36308:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "36301:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "36279:3:81",
                    "statements": []
                  },
                  "src": "36275:135:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36419:14:81",
                  "value": {
                    "name": "dst_1",
                    "nodeType": "YulIdentifier",
                    "src": "36428:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "36419:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "35821:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "35829:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "35837:5:81",
                "type": ""
              }
            ],
            "src": "35772:667:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36600:1069:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36646:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36655:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36658:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "36648:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36648:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36648:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "36621:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36630:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "36617:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36617:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36642:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "36613:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36613:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "36610:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36671:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36691:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "36685:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36685:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "36675:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36710:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "36720:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "36714:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36765:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36774:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36777:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "36767:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36767:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36767:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "36753:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "36761:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "36750:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36750:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "36747:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36790:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36804:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "36815:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36800:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36800:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "36794:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36870:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36879:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "36882:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "36872:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36872:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36872:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "36849:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "36853:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "36845:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "36845:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "36860:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "36841:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36841:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "36834:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36834:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "36831:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36895:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "36911:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "36905:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36905:9:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "36899:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36923:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "36933:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "36927:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36946:79:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "37021:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_array_address_payable_dyn",
                          "nodeType": "YulIdentifier",
                          "src": "36973:47:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36973:51:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "36957:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36957:68:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "36950:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37034:16:81",
                  "value": {
                    "name": "dst",
                    "nodeType": "YulIdentifier",
                    "src": "37047:3:81"
                  },
                  "variables": [
                    {
                      "name": "dst_1",
                      "nodeType": "YulTypedName",
                      "src": "37038:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "37066:3:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "37071:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37059:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37059:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37059:15:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37083:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "37094:3:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "37099:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "37090:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37090:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "37083:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37111:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "37133:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "37141:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "37144:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "37137:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "37137:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37129:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37129:19:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "37150:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "37125:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37125:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "37115:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "37185:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "37194:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "37197:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "37187:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37187:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "37187:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "37168:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "37176:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "37165:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37165:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "37162:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37210:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "37225:2:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "37229:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "37221:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37221:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "37214:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "37297:154:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "37311:23:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "37330:3:81"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "37324:5:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37324:10:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "37315:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "37372:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "37347:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37347:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "37347:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "37398:3:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "37403:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "37391:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37391:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "37391:18:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "37422:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "37433:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "37438:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "37429:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37429:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "37422:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "37252:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "37257:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "37249:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37249:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "37265:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "37267:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "37278:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "37283:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "37274:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37274:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "37267:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "37245:3:81",
                    "statements": []
                  },
                  "src": "37241:210:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37460:15:81",
                  "value": {
                    "name": "dst_1",
                    "nodeType": "YulIdentifier",
                    "src": "37470:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "37460:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37484:41:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37510:9:81"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "37521:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37506:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37506:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "37500:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37500:25:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "37488:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "37554:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "37563:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "37566:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "37556:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37556:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "37556:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "37540:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "37550:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "37537:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37537:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "37534:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37579:84:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37633:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "37644:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37629:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37629:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "37655:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn_fromMemory",
                      "nodeType": "YulIdentifier",
                      "src": "37589:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37589:74:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "37579: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": "36558:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "36569:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "36581:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "36589:6:81",
                "type": ""
              }
            ],
            "src": "36444:1225:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "37732:664:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37742:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "37765:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nodeType": "YulIdentifier",
                      "src": "37759:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37759:12:81"
                  },
                  "variables": [
                    {
                      "name": "slotValue",
                      "nodeType": "YulTypedName",
                      "src": "37746:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37780:50:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "slotValue",
                        "nodeType": "YulIdentifier",
                        "src": "37820:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "extract_byte_array_length",
                      "nodeType": "YulIdentifier",
                      "src": "37794:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37794:36:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "37784:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37839:11:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "37849:1:81",
                    "type": "",
                    "value": "1"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "37843:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "37900:126:81",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "37921:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "slotValue",
                                      "nodeType": "YulIdentifier",
                                      "src": "37930:9:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "37945:3:81",
                                          "type": "",
                                          "value": "255"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "not",
                                        "nodeType": "YulIdentifier",
                                        "src": "37941:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "37941:8:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "and",
                                    "nodeType": "YulIdentifier",
                                    "src": "37926:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "37926:24:81"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "37914:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "37914:37:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "37914:37:81"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "37964:52:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "37975:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "length",
                                      "nodeType": "YulIdentifier",
                                      "src": "37984:6:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "name": "length",
                                              "nodeType": "YulIdentifier",
                                              "src": "38006:6:81"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "iszero",
                                            "nodeType": "YulIdentifier",
                                            "src": "37999:6:81"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "37999:14:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "iszero",
                                        "nodeType": "YulIdentifier",
                                        "src": "37992:6:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "37992:22:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nodeType": "YulIdentifier",
                                    "src": "37980:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "37980:35:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "37971:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "37971:45:81"
                            },
                            "variableNames": [
                              {
                                "name": "ret",
                                "nodeType": "YulIdentifier",
                                "src": "37964:3:81"
                              }
                            ]
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "37893:133:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37898:1:81",
                        "type": "",
                        "value": "0"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "38042:348:81",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "38063:1:81",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "38066:5:81"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "38056:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "38056:16:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "38056:16:81"
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "38085:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38095:4:81",
                              "type": "",
                              "value": "0x20"
                            },
                            "variables": [
                              {
                                "name": "_2",
                                "nodeType": "YulTypedName",
                                "src": "38089:2:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "38112:31:81",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "38137:1:81",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "name": "_2",
                                  "nodeType": "YulIdentifier",
                                  "src": "38140:2:81"
                                }
                              ],
                              "functionName": {
                                "name": "keccak256",
                                "nodeType": "YulIdentifier",
                                "src": "38127:9:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "38127:16:81"
                            },
                            "variables": [
                              {
                                "name": "dataPos",
                                "nodeType": "YulTypedName",
                                "src": "38116:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "38156:10:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38165:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "38160:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "38233:111:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "pos",
                                            "nodeType": "YulIdentifier",
                                            "src": "38262:3:81"
                                          },
                                          {
                                            "name": "i",
                                            "nodeType": "YulIdentifier",
                                            "src": "38267:1:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "38258:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "38258:11:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "dataPos",
                                            "nodeType": "YulIdentifier",
                                            "src": "38277:7:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "sload",
                                          "nodeType": "YulIdentifier",
                                          "src": "38271:5:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "38271:14:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "38251:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "38251:35:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "38251:35:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "38303:27:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dataPos",
                                        "nodeType": "YulIdentifier",
                                        "src": "38318:7:81"
                                      },
                                      {
                                        "name": "_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "38327:2:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "38314:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "38314:16:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dataPos",
                                      "nodeType": "YulIdentifier",
                                      "src": "38303:7:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "38190:1:81"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "38193:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "38187:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "38187:13:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "38201:19:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "38203:15:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "38212:1:81"
                                      },
                                      {
                                        "name": "_2",
                                        "nodeType": "YulIdentifier",
                                        "src": "38215:2:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "38208:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "38208:10:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "38203:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "38183:3:81",
                              "statements": []
                            },
                            "src": "38179:165:81"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "38357:23:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "38368:3:81"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "38373:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "38364:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "38364:16:81"
                            },
                            "variableNames": [
                              {
                                "name": "ret",
                                "nodeType": "YulIdentifier",
                                "src": "38357:3:81"
                              }
                            ]
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "38035:355:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38040:1:81",
                        "type": "",
                        "value": "1"
                      }
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "slotValue",
                        "nodeType": "YulIdentifier",
                        "src": "37870:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "37881:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "37866:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37866:18:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "37859:531:81"
                }
              ]
            },
            "name": "abi_encode_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "37709:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "37716:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "37724:3:81",
                "type": ""
              }
            ],
            "src": "37674:722:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38582:96:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "38592:80:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "38625:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "38659:6:81"
                          },
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "38667:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "abi_encode_string_storage",
                          "nodeType": "YulIdentifier",
                          "src": "38633:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38633:38:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "38599:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38599:73:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "38592: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": "38550:3:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "38555:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "38563:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "38574:3:81",
                "type": ""
              }
            ],
            "src": "38401:277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38774:558:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "38820:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38829:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38832:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "38822:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "38822:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "38822:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "38795:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38804:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "38791:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38791:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38816:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "38787:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38787:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "38784:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "38845:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38865:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "38859:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38859:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "38849:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "38918:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38927:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "38930:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "38920:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "38920:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "38920:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "38890:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38898:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "38887:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38887:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "38884:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "38943:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38957:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "38968:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "38953:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38953:22:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "38947:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "39023:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39032:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39035:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "39025:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39025:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "39025:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "39002:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "39006:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "38998:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "38998:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "39013:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "38994:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38994:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "38987:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38987:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "38984:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39048:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "39064:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "39058:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39058:9:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "39052:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39076:62:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "39134:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_string",
                          "nodeType": "YulIdentifier",
                          "src": "39105:28:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39105:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "39089:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39089:49:81"
                  },
                  "variables": [
                    {
                      "name": "array",
                      "nodeType": "YulTypedName",
                      "src": "39080:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "array",
                        "nodeType": "YulIdentifier",
                        "src": "39154:5:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "39161:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39147:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39147:17:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39147:17:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "39210:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39219:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39222:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "39212:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39212:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "39212:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "39187:2:81"
                              },
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "39191:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "39183:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "39183:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39196:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39179:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39179:20:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "39201:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "39176:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39176:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "39173:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "39274:2:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39278:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39270:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39270:11:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "array",
                            "nodeType": "YulIdentifier",
                            "src": "39287:5:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39294:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39283:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39283:14:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "39299:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "39235:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39235:67:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39235:67:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "39311:15:81",
                  "value": {
                    "name": "array",
                    "nodeType": "YulIdentifier",
                    "src": "39321:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "39311:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "38740:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "38751:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "38763:6:81",
                "type": ""
              }
            ],
            "src": "38683:649:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "39521:205:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39531:48:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "39567:6:81"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "39575:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "39541:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39541:38:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "39535:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39588:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "39608:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "39602:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39602:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "39592:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "39663:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39671:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39659:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39659:17:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "39678:2:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "39682:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "39624:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39624:65:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39624:65:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "39698:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "39709:2:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "39713:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "39705:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39705:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "39698: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": "39489:3:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "39494:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "39502:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "39513:3:81",
                "type": ""
              }
            ],
            "src": "39337:389:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "39905:180:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "39922:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39933:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39915:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39915:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39915:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39956:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39967:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39952:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39952:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39972:2:81",
                        "type": "",
                        "value": "30"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39945:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39945:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39945:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39995:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40006:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39991:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39991:18:81"
                      },
                      {
                        "hexValue": "43726561746f72436f72653a20496e76616c696420657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40011:32:81",
                        "type": "",
                        "value": "CreatorCore: Invalid extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39984:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39984:60:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39984:60:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40053:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40065:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40076:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40061:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40061:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "40053:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_2d7d7215e277fb812fad4601df1b9ac85cd358bdd281ae38c601df8cd0f402b5__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "39882:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "39896:4:81",
                "type": ""
              }
            ],
            "src": "39731:354:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "40264:165:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40281:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40292:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40274:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40274:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40274:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40315:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40326:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40311:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40311:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40331:2:81",
                        "type": "",
                        "value": "15"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40304:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40304:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40304:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40354:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40365:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40350:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40350:18:81"
                      },
                      {
                        "hexValue": "496e76616c69642061646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40370:17:81",
                        "type": "",
                        "value": "Invalid address"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40343:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40343:45:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40343:45:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40397:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40409:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40420:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40405:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40405:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "40397:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "40241:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "40255:4:81",
                "type": ""
              }
            ],
            "src": "40090:339:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "40608:173:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40625:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40636:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40618:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40618:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40618:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40659:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40670:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40655:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40655:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40675:2:81",
                        "type": "",
                        "value": "23"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40648:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40648:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40648:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40698:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40709:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40694:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40694:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420746f74616c20726f79616c74696573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40714:25:81",
                        "type": "",
                        "value": "Invalid total royalties"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40687:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40687:53:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40687:53:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40749:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40761:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40772:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40757:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40757:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "40749:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_bdeae8abc7e2f0e6881f3618c066b1b8be917729ca4a34e4ef407f79dd9f7a90__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "40585:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "40599:4:81",
                "type": ""
              }
            ],
            "src": "40434:347:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "40864:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "40910:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40919:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40922:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "40912:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40912:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40912:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "40885:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40894:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "40881:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40881:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40906:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "40877:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40877:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "40874:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40935:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40961:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "40948:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40948:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "40939:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "41005:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "40980:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40980:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40980:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "41020:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "41030:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "41020:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address_payable",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "40830:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "40841:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "40853:6:81",
                "type": ""
              }
            ],
            "src": "40786:255:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41203:218:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "41213:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41225:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41236:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41221:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41221:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "41213:4:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41248:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41266:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41271:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "41262:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41262:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41275:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "41258:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41258:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "41252:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41293:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "41308:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "41316:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "41304:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41304:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41286:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41286:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41286:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41340:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41351:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41336:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41336:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "41360:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "41368:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "41356:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41356:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41329:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41329:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41329:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41392:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41403:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41388:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41388:18:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "41408:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41381:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41381:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41381:34:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "41156:9:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "41167:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "41175:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "41183:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "41194:4:81",
                "type": ""
              }
            ],
            "src": "41046:375:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41475:79:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "41485:17:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "41497:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "41500:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "41493:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41493:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "41485:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "41526:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "41528:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41528:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "41528:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "41517:4:81"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "41523:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "41514:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41514:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "41511:37:81"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "41457:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "41460:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "41466:4:81",
                "type": ""
              }
            ],
            "src": "41426:128:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41591:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41608:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41615:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41620:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "41611:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41611:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41601:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41601:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41601:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41648:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41651:4:81",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41641:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41641:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41641:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41672:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41675:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "41665:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41665:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41665:15:81"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "41559:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41865:156:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41882:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41893:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41875:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41875:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41875:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41916:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41927:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41912:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41912:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41932:1:81",
                        "type": "",
                        "value": "7"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41905:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41905:29:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41905:29:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41954:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41965:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41950:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41950:18:81"
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "41970:9:81",
                        "type": "",
                        "value": "Invalid"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41943:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41943:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41943:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "41989:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42001:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42012:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41997:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41997:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "41989:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "41842:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "41856:4:81",
                "type": ""
              }
            ],
            "src": "41691:330:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42229:286:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "42239:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42257:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42262:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "42253:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42253:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42266:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "42249:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42249:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "42243:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42284:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "42299:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "42307:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "42295:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42295:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42277:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42277:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42277:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42331:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42342:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42327:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42327:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "42351:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "42359:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "42347:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42347:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42320:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42320:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42320:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42383:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42394:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42379:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42379:18:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "42399:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42372:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42372:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42372:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42426:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42437:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42422:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42422:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42442:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42415:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42415:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42415:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42455:54:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "42481:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42493:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42504:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42489:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42489:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "42463:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42463:46:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "42455:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42174:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "42185:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "42193:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "42201:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "42209:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "42220:4:81",
                "type": ""
              }
            ],
            "src": "42026:489:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42600:169:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "42646:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42655:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42658:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "42648:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42648:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42648:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "42621:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42630:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "42617:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42617:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42642:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "42613:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42613:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "42610:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "42671:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42690:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "42684:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42684:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "42675:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "42733:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "42709:23:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42709:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42709:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42748:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "42758:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "42748:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42566:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "42577:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "42589:6:81",
                "type": ""
              }
            ],
            "src": "42520:249:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42948:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42965:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42976:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42958:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42958:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42958:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42999:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43010:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42995:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42995:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43015:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42988:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42988:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42988:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43038:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43049:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43034:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43034:18:81"
                      },
                      {
                        "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "43054:34:81",
                        "type": "",
                        "value": "ERC721: mint to the zero address"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43027:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43027:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43027:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "43098:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43110:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43121:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43106:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43106:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43098:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42925:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "42939:4:81",
                "type": ""
              }
            ],
            "src": "42774:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43309:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43326:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43337:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43319:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43319:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43319:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43360:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43371:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43356:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43356:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43376:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43349:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43349:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43349:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43399:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43410:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43395:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43395:18:81"
                      },
                      {
                        "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "43415:30:81",
                        "type": "",
                        "value": "ERC721: token already minted"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43388:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43388:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43388:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "43455:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43467:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43478:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43463:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43463:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43455:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43286:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43300:4:81",
                "type": ""
              }
            ],
            "src": "43135:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43591:103:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "43601:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43613:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43624:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43609:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43609:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43601:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43643:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "43658:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "43670:3:81",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "43675:10:81",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "43666:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "43666:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "43654:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43654:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43636:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43636:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43636:52:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43560:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "43571:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43582:4:81",
                "type": ""
              }
            ],
            "src": "43492:202:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43884:271:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "43894:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43906:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43917:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43902:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43902:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43894:4:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "43930:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43948:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43953:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "43944:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43944:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43957:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "43940:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43940:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "43934:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43975:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "43990:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "43998:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "43986:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43986:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43968:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43968:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43968:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44022:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44033:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44018:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44018:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "44042:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "44050:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "44038:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44038:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44011:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44011:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44011:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44074:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44085:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44070:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44070:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nodeType": "YulIdentifier",
                            "src": "44094:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "44102:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "44090:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44090:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44063:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44063:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44063:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44126:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44137:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44122:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44122:18:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "44142:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44115:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44115:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44115:34:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_address_t_uint256__to_t_address_t_address_t_address_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43829:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "43840:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "43848:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "43856:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "43864:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43875:4:81",
                "type": ""
              }
            ],
            "src": "43699:456:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "44238:167:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "44284:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "44293:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "44296:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "44286:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "44286:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "44286:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "44259:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44268:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "44255:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44255:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44280:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "44251:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44251:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "44248:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44309:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "44328:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "44322:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44322:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "44313:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "44369:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "44347:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44347:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44347:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "44384:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "44394:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "44384:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "44204:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "44215:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "44227:6:81",
                "type": ""
              }
            ],
            "src": "44160:245:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "44584:176:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "44601:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44612:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44594:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44594:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44594:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44635:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44646:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44631:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44631:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44651:2:81",
                        "type": "",
                        "value": "26"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44624:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44624:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44624:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44674:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44685:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44670:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44670:18:81"
                      },
                      {
                        "hexValue": "457874656e73696f6e20617070726f76616c206661696c757265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "44690:28:81",
                        "type": "",
                        "value": "Extension approval failure"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44663:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44663:56:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44663:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "44728:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "44740:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44751:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "44736:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44736:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "44728:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c3d60d7a20407b9f19afe96408b04a4d7e66044de3966b3dad84a73681c556f2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "44561:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "44575:4:81",
                "type": ""
              }
            ],
            "src": "44410:350:81"
          }
        ]
      },
      "contents": "{\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 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_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_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_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_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\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 value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_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 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_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_decode_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_string_calldata_ptr_$dyn_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_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_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_addresst_array$_t_uint80_$dyn_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_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_string(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_available_length_string(src, length, end) -> array\n    {\n        array := allocate_memory(array_allocation_size_string(length))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array, 0x20), src, length)\n        mstore(add(add(array, length), 0x20), 0)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_string(add(offset, 0x20), calldataload(offset), end)\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_string(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_string(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_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_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_uint16(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        if iszero(eq(value_1, and(value_1, 0xffff))) { revert(0, 0) }\n        value1 := value_1\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_uint80__to_t_uint80__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(80, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { 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        let offset := calldataload(add(headStart, 96))\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        value3 := abi_decode_available_length_string(add(_1, 32), calldataload(_1), dataEnd)\n    }\n    function abi_encode_array_address_payable_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_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_payable_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_payable_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_uint80(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(80, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint80(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_uint80(add(headStart, 32))\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_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_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__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), \"ERC721: approval to current owne\")\n        mstore(add(headStart, 96), \"r\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n        mstore(add(headStart, 96), \"ken owner or approved for all\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4__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), \"Nonexistent token\")\n        tail := add(headStart, 96)\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_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n        mstore(add(headStart, 96), \"r 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 checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\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_decode_tuple_t_uint80(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint80(headStart)\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_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_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_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__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), \"ERC721: address zero is not a va\")\n        mstore(add(headStart, 96), \"lid owner\")\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 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 array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function abi_encode_tuple_t_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        mstore(pos, value3)\n        if gt(value3, sub(shl(251, 1), 1)) { revert(0, 0) }\n        let length := shl(5, value3)\n        calldatacopy(add(pos, 0x20), value2, length)\n        tail := add(add(pos, length), 0x20)\n    }\n    function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__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), \"ERC721: transfer from incorrect \")\n        mstore(add(headStart, 96), \"owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__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), \"ERC721: transfer to the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\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 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 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_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_21f6ef9796c821924c8451552637a275db9d13fc80db87bcd51e231390e84cc3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"Too many extensions\")\n        tail := add(headStart, 96)\n    }\n    function increment_t_uint16(value) -> ret\n    {\n        let _1 := 0xffff\n        let value_1 := and(value, _1)\n        if eq(value_1, _1) { panic_error_0x11() }\n        ret := add(value_1, 1)\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_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__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), \"ERC721: approve to caller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n        mstore(add(headStart, 96), \"ceiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function array_allocation_size_array_address_payable_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_array_uint256_dyn_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 dst := allocate_memory(array_allocation_size_array_address_payable_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\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 dst := allocate_memory(array_allocation_size_array_address_payable_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _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 := dst_1\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_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 array := allocate_memory(array_allocation_size_string(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n        value0 := array\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 abi_encode_tuple_t_stringliteral_2d7d7215e277fb812fad4601df1b9ac85cd358bdd281ae38c601df8cd0f402b5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"CreatorCore: 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_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 abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\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    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    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_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, 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), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\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 abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__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), \"ERC721: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__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), \"ERC721: token already minted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_address_t_uint256__to_t_address_t_address_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\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), value3)\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}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "343:13391:30:-:0;;;899:1:32;868:32;;343:13391:30;;;;;;;;;-1:-1:-1;1716:1:8;1821:7;:22;421::80;:20;:22::i;:::-;343:13391:30;;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:-;343:13391:30;;;;;;",
  "deployedSourceMap": "343:13391:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;760:322;;;;;;:::i;:::-;;:::i;:::-;;;565:14:81;;558:22;540:41;;528:2;513:18;760:322:30;;;;;;;;2130:126;;;;;;:::i;:::-;;:::i;:::-;;2243:98:78;;;:::i;:::-;;;;;;;:::i;3031:167::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2564:406::-;;;;;;:::i;:::-;;:::i;12328:194:30:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4094:134::-;;;;;;:::i;:::-;;:::i;10839:260::-;;;;;;:::i;:::-;;:::i;13281:115:32:-;13369:20;;-1:-1:-1;;;;;13369:20:32;13281:115;;9745:362:30;;;;;;:::i;:::-;;:::i;3706:324:78:-;;;;;;:::i;:::-;;:::i;2025:137:1:-;;;;;;:::i;:::-;;:::i;6813:169:30:-;;;;;;:::i;:::-;;:::i;:::-;;;5849:25:81;;;5837:2;5822:18;6813:169:30;5703:177:81;12592:222:30;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1757:205:1:-;;;;;;:::i;:::-;;:::i;3714:116:30:-;;;;;;:::i;:::-;;:::i;1338:205::-;;;;;;:::i;:::-;;:::i;1156:261:1:-;;;:::i;:::-;;;;;;;:::i;10573:199:30:-;;;;;;:::i;:::-;;:::i;8088:457::-;;;;;;:::i;:::-;;:::i;2335:155::-;;;;;;:::i;:::-;;:::i;1615:239::-;;;;;;:::i;:::-;;:::i;8624:458::-;;;;;;:::i;:::-;;:::i;4096:179:78:-;;;;;;:::i;:::-;;:::i;10172:334:30:-;;;;;;:::i;:::-;;:::i;538:155::-;;;;;;:::i;:::-;;:::i;13140:130::-;;;;;;:::i;:::-;;:::i;3299:345::-;;;;;;:::i;:::-;;:::i;1954:227:78:-;;;;;;:::i;:::-;;:::i;2825:158:30:-;;;;;;:::i;:::-;;:::i;1485:205:1:-;;;;;;:::i;:::-;;:::i;1693:204:78:-;;;;;;:::i;:::-;;:::i;2071:101:3:-;;;:::i;4909:142:30:-;;;;;;:::i;:::-;;:::i;5120:164::-;;;;;;:::i;:::-;;:::i;5829:430::-;;;;;;:::i;:::-;;:::i;2569:175::-;;;;;;:::i;:::-;;:::i;3998:316:32:-;;;:::i;1441:85:3:-;;;:::i;2405:102:78:-;;;:::i;3902:126:30:-;;;;;;:::i;:::-;;:::i;3265:151:78:-;;;;;;:::i;:::-;;:::i;4294:313:30:-;;;;;;:::i;:::-;;:::i;4915:163:32:-;;;;;;:::i;:::-;;:::i;5358:397:30:-;;;;;;:::i;:::-;;:::i;11175:226::-;;;;;;:::i;:::-;;:::i;13603:129::-;;;;;;:::i;:::-;13662:6;13694:19;;;:10;:19;;;;;:24;-1:-1:-1;;;13694:24:30;;13722:2;13694:30;-1:-1:-1;;;;;13694:30:30;;13603:129;;;;-1:-1:-1;;;;;16064:31:81;;;16046:50;;16034:2;16019:18;13603:129:30;15902:200:81;4341:312:78;;;;;;:::i;:::-;;:::i;12046:218:30:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11468:225::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;12881:186::-;;;;;;:::i;:::-;;:::i;1929:128::-;;;;;;:::i;:::-;;:::i;7321:185::-;;;;;;:::i;:::-;;:::i;7585:424::-;;;;;;:::i;:::-;;:::i;3058:166::-;;;;;;:::i;:::-;;:::i;3482:162:78:-;;;;;;:::i;:::-;;:::i;4680:160:30:-;;;;;;:::i;:::-;;:::i;2321:198:3:-;;;;;;:::i;:::-;;:::i;7056:191:30:-;;;;;;:::i;:::-;;:::i;552:35:34:-;;586:1;552:35;;760:322:30;901:4;924:48;960:11;924:35;:48::i;:::-;:93;;;;976:41;1005:11;976:28;:41::i;:::-;924:151;;;;1021:54;1063:11;1021:41;:54::i;:::-;917:158;760:322;-1:-1:-1;;760:322:30:o;2130: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;:::-;;;;;;;;;2219:30:30::1;2239:9;2219:19;:30::i;:::-;2130:126:::0;:::o;2243:98:78:-;2297:13;2329:5;2322:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2243:98;:::o;3031:167::-;3107:7;3126:23;3141:7;3126:14;:23::i;:::-;-1:-1:-1;3167:24:78;;;;:15;:24;;;;;;-1:-1:-1;;;;;3167:24:78;;3031:167::o;2564:406::-;2644:13;2660:27;2679:7;2660:18;:27::i;:::-;2644:43;;2711:5;-1:-1:-1;;;;;2705:11:78;:2;-1:-1:-1;;;;;2705:11:78;;2697:57;;;;-1:-1:-1;;;2697:57:78;;20050:2:81;2697:57:78;;;20032:21:81;20089:2;20069:18;;;20062:30;20128:34;20108:18;;;20101:62;-1:-1:-1;;;20179:18:81;;;20172:31;20220:19;;2697:57:78;19848:397:81;2697:57:78;2786:10;-1:-1:-1;;;;;2786:19:78;;;;:58;;;2809:35;2826:5;2833:10;2809:16;:35::i;:::-;2765:166;;;;-1:-1:-1;;;2765:166:78;;20452:2:81;2765:166:78;;;20434:21:81;20491:2;20471:18;;;20464:30;20530:34;20510:18;;;20503:62;20601:31;20581:18;;;20574:59;20650:19;;2765:166:78;20250:425:81;2765:166:78;2942:21;2951:2;2955:7;2942:8;:21::i;:::-;2634:336;2564:406;;:::o;12328:194:30:-;12404:13;12437:16;12445:7;12437;:16::i;:::-;12429:46;;;;-1:-1:-1;;;12429:46:30;;;;;;;:::i;:::-;12492:23;12507:7;12492:14;:23::i;4094:134::-;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;:::-;4195:26:30::1;4208:7;4217:3;;4195:12;:26::i;10839:260::-: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;:::-;10998:16:30::1;11006:7;10998;:16::i;:::-;10990:46;;;;-1:-1:-1::0;;;10990:46:30::1;;;;;;;:::i;:::-;11046;11060:7;11069:9;;11080:11;;11046:13;:46::i;:::-;10839:260:::0;;;;;:::o;9745:362::-;9824:17;9861:16;9869:7;9861;:16::i;:::-;9853:46;;;;-1:-1:-1;;;9853:46:30;;;;;;;:::i;:::-;9921:24;9937:7;9921:15;:24::i;:::-;9909:36;-1:-1:-1;;;;;;9963:23:30;;9955:58;;;;-1:-1:-1;;;9955:58:30;;21228:2:81;9955:58:30;;;21210:21:81;21267:2;21247:18;;;21240:30;-1:-1:-1;;;21286:18:81;;;21279:52;21348:18;;9955:58:30;21026:346:81;9955:58:30;10032:42;:22;10064:9;10032:31;:42::i;:::-;10031:43;10023:77;;;;-1:-1:-1;;;10023:77:30;;;;;;;:::i;:::-;9745:362;;;:::o;3706:324:78:-;3895:39;3914:10;3926:7;3895:18;:39::i;:::-;3887:97;;;;-1:-1:-1;;;3887:97:78;;;;;;;:::i;:::-;3995:28;4005:4;4011:2;4015:7;3995:9;:28::i;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;6813:169:30:-;6893:7;2261:21:8;:19;:21::i;:::-;6912:18:30::1;:16;:18::i;:::-;6947:28;6962:2;6947:28;;;;;;;;;;;::::0;6970:1:::1;6973::::0;6947:14:::1;:28::i;:::-;6940:35;;2303:20:8::0;1716:1;2809:7;:22;2629:209;12592:222:30;12685:7;12694;12721:16;12729:7;12721;:16::i;:::-;12713:46;;;;-1:-1:-1;;;12713:46:30;;;;;;;:::i;:::-;12776:31;12792:7;12801:5;12776:15;:31::i;:::-;12769:38;;;;12592:222;;;;;;:::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;3714:116:30:-;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;:::-;3802:21:30::1;3819:3;;3802:16;:21::i;1338: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;:::-;1451:30:30::1;1471:9;1451:19;:30::i;:::-;1491:45;1510:9;1521:7;;1530:5;1491: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;10573:199:30:-;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;:::-;10707:58:30::1;10738:1;10742:9;;10753:11;;10707:22;:58::i;:::-;10573:199:::0;;;;:::o;8088:457::-;8197:25;2261:21:8;:19;:21::i;:::-;8234:18:30::1;:16;:18::i;:::-;8287:4:::0;-1:-1:-1;;;;;8273:26:30;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;8273:26:30::1;;8262:37;;8309:20;8332:11;;8344:1;8332:13;;;;:::i;:::-;8309:36;;8370:4;;:11;;8355;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8397:6:30::1;::::0;-1:-1:-1;8392:147:30::1;8405:15:::0;;::::1;8392:147;;;8451:46;8466:2;8470:4;;8475:1;8470:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8451:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;8451:46:30;-1:-1:-1;8482:14:30::1;::::0;-1:-1:-1;8495:1:30;;-1:-1:-1;8482:12:30;:14:::1;:::i;:::-;8451;:46::i;:::-;8437:8;8446:1;8437:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:60;8523:3:::1;;8392:147;;;;8224:321;2303:20:8::0;1716:1;2809:7;:22;2629:209;2303:20;8088:457:30;;;;;:::o;2335:155::-;2418:18;:16;:18::i;:::-;2446:37;2472:3;;2477:5;2446:25;:37::i;1615: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;:::-;1751:30:30::1;1771:9;1751:19;:30::i;:::-;1791:56;1810:9;1821:7;;1830:16;1791:18;:56::i;8624:458::-:0;8733:25;2261:21:8;:19;:21::i;:::-;8770:18:30::1;:16;:18::i;:::-;8823:4:::0;-1:-1:-1;;;;;8809:26:30;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;8809:26:30::1;;8798:37;;8845:20;8868:11;;8880:1;8868:13;;;;:::i;:::-;8845:36;;8906:4;;:11;;8891;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8933:6:30::1;::::0;-1:-1:-1;8928:148:30::1;8941:15:::0;;::::1;8928:148;;;8987:47;9002:2;8987:47;;;;;;;;;;;::::0;9010:4:::1;;9015:1;9010:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9019:14;9032:1:::0;9019:12;:14:::1;:::i;8987:47::-;8973:8;8982:1;8973:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:61;9060:3:::1;;8928:148;;4096:179:78::0;4229:39;4246:4;4252:2;4256:7;4229:39;;;;;;;;;;;;:16;:39::i;10172:334:30:-;2261:21:8;:19;:21::i;:::-;10258:39:30::1;10277:10;10289:7;10258:18;:39::i;:::-;10250:83;;;::::0;-1:-1:-1;;;10250:83:30;;23593:2:81;10250:83:30::1;::::0;::::1;23575:21:81::0;23632:2;23612:18;;;23605:30;23671:33;23651:18;;;23644:61;23722:18;;10250:83:30::1;23391:355:81::0;10250:83:30::1;10343:13;10359:16;10367:7;10359;:16::i;:::-;10343:32;;10385:17;10405:24;10421:7;10405:15;:24::i;:::-;10385:44;;10439:14;10445:7;10439:5;:14::i;:::-;10463:36;10473:5;10480:7;10489:9;10463;:36::i;:::-;10240:266;;2303:20:8::0;1716:1;2809:7;:22;2629:209;538:155:30;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;;23953:2:81;3314:201:4;;;23935:21:81;23992:2;23972:18;;;23965:30;24031:34;24011:18;;;24004:62;-1:-1:-1;;;24082:18:81;;;24075:44;24136:19;;3314:201:4;23751: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;631:29:30::1;645:5;652:7;631:13;:29::i;:::-;670: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;24318:36:81;;3710:14:4;;24306:2:81;24291:18;3710:14:4;;;;;;;3258:483;538:155:30;;:::o;13140:130::-;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;:::-;13229:34:30::1;13253:9;13229:23;:34::i;3299:345::-:0;3410:18;:16;:18::i;:::-;3446:30;;;3438:56;;;;-1:-1:-1;;;3438:56:30;;;;;;;:::i;:::-;3509:6;3504:134;3517:19;;;3504:134;;;3553:43;3575:8;;3584:1;3575:11;;;;;;;:::i;:::-;;;;;;;3588:4;;3593:1;3588:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;3553:21;:43::i;:::-;3622:3;;3504:134;;1954:227:78;2026:7;2061:19;;;:10;:19;;;;;:25;-1:-1:-1;;;;;2061:25:78;;2096:56;;;;-1:-1:-1;;;2096:56:78;;;;;;;:::i;2825:158:30:-;2913:18;:16;:18::i;:::-;2941:35;2969:6;;2941:27;:35::i;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;1693:204:78:-:0;1765:7;-1:-1:-1;;;;;1792:19:78;;1784:73;;;;-1:-1:-1;;;1784:73:78;;25262:2:81;1784:73:78;;;25244:21:81;25301:2;25281:18;;;25274:30;25340:34;25320:18;;;25313:62;-1:-1:-1;;;25391:18:81;;;25384:39;25440:19;;1784:73:78;25060:405:81;1784:73:78;-1:-1:-1;;;;;;1874:16:78;;;;;:9;:16;;;;;;;1693:204::o;2071:101:3:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;4909:142:30:-;4998:7;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;:::-;5024:20:30::2;5034:2;5024:20;;;;;;;;;;;::::0;5042:1:::2;5024:9;:20::i;5120:164::-:0;5230:7;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;:::-;5256:21:30::2;5266:2;5270:3;;5256:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;-1:-1:-1;5256:21:30;-1:-1:-1;5256:9:30::2;::::0;-1:-1:-1;;5256:21:30:i:2;:::-;5249:28;;2303:20:8::0;1716:1;2809:7;:22;2629:209;5829:430:30;5947:25;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;:::-;6009:4:30::0;-1:-1:-1;;;;;5995:26:30;::::2;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;5995:26:30::2;;5984:37;;6031:20;6054:11;;6066:1;6054:13;;;;:::i;:::-;6031:36;;6092:4;;:11;;6077;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;6119:6:30::2;::::0;-1:-1:-1;6114:139:30::2;6127:15:::0;;::::2;6114:139;;;6173:38;6183:2;6187:4;;6192:1;6187:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;6173:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;6196:14:30::2;::::0;-1:-1:-1;6209:1:30;;-1:-1:-1;6196:12:30;;-1:-1:-1;6196:14:30::2;:::i;:::-;6173:9;:38::i;:::-;6159:8;6168:1;6159:11;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;:52;6237:3:::2;;6114:139;;2569:175:::0;2668:18;:16;:18::i;:::-;2696:41;2722:3;;2727:9;2696:25;:41::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;;1441:85:3;1513:6;;-1:-1:-1;;;;;1513:6:3;;1441:85::o;2405:102:78:-;2461:13;2493:7;2486:14;;;;;:::i;3902:126:30:-;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;:::-;3995:26:30::1;4014:6;;3995:18;:26::i;3265:151:78:-:0;3359:50;3378:10;3390:8;3400;3359:18;:50::i;4294:313:30:-;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;:::-;4418:30:30;;::::1;4410:56;;;;-1:-1:-1::0;;;4410:56:30::1;;;;;;;:::i;:::-;4481:6;4476:125;4489:19:::0;;::::1;4476:125;;;4525:34;4538:8;;4547:1;4538:11;;;;;;;:::i;:::-;;;;;;;4551:4;;4556:1;4551:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4525:12;:34::i;:::-;4585:3;;4476:125;;4915:163:32::0;4994:18;:16;:18::i;:::-;5022:49;5051:10;5063:7;5022:28;:49::i;5358:397:30:-;5466:25;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;:::-;5528:5:30::2;5514:20;;-1:-1:-1::0;;;;;5514:20:30::2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;5514:20:30::2;;5503:31;;5544:20;5567:11;;5579:1;5567:13;;;;:::i;:::-;5544:36;;5605:5;5590:20;;:11;;:20;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;5626:6:30::2;::::0;-1:-1:-1;5621:128:30::2;5638:5;5634:9;;:1;:9;5621:128;;;5674:33;5684:2;5674:33;;;;;;;;;;;::::0;5705:1:::2;5692:12;:14;;;;:::i;5674:33::-;5660:8;5669:1;5660:11;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;:47;5733:3:::2;;5621:128;;;;5493:262;2303:20:8::0;1716:1;2809:7;:22;2629:209;11175:226:30;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;:::-;11337:57:30::1;11360:9;11371;;11382:11;;11337:22;:57::i;4341:312:78:-:0;4509:39;4528:10;4540:7;4509:18;:39::i;:::-;4501:97;;;;-1:-1:-1;;;4501:97:78;;;;;;;:::i;:::-;4608:38;4622:4;4628:2;4632:7;4641:4;4608:13;:38::i;12046:218:30:-;12129:24;12173:16;12181:7;12173;:16::i;:::-;12165:46;;;;-1:-1:-1;;;12165:46:30;;;;;;;:::i;:::-;12228:29;12249:7;12228:20;:29::i;11468:225::-;11547:24;11573:16;11609;11617:7;11609;:16::i;:::-;11601:46;;;;-1:-1:-1;;;11601:46:30;;;;;;;:::i;:::-;11664:22;11678:7;11664:13;:22::i;:::-;11657:29;;;;11468:225;;;:::o;12881:186::-;12954:13;12987:16;12995:7;12987;:16::i;:::-;12979:46;;;;-1:-1:-1;;;12979:46:30;;;;;;;:::i;:::-;13042:18;13052:7;13042:9;:18::i;1929: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;:::-;2019:31:30::1;2040:9;2019:20;:31::i;7321:185::-:0;7414:7;2261:21:8;:19;:21::i;:::-;7433:18:30::1;:16;:18::i;:::-;7468:31;7483:2;7468:31;;;;;;;;;;;::::0;7491:4:::1;7497:1;7468:14;:31::i;:::-;7461:38;;2303:20:8::0;1716:1;2809:7;:22;2629:209;7585:424:30;7684:25;2261:21:8;:19;:21::i;:::-;7721:18:30::1;:16;:18::i;:::-;7774:5;7760:20;;-1:-1:-1::0;;;;;7760:20:30::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;7760:20:30::1;;7749:31;;7790:20;7813:11;;7825:1;7813:13;;;;:::i;:::-;7790:36;;7851:5;7836:20;;:11;;:20;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;7872:6:30::1;::::0;-1:-1:-1;7867:136:30::1;7884:5;7880:9;;:1;:9;7867:136;;;7920:41;7935:2;7920:41;;;;;;;;;;;::::0;7943:1:::1;7959;7946:12;:14;;;;:::i;7920:41::-;7906:8;7915:1;7906:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:55;7987:3:::1;;7867:136;;3058:166:::0;3154:18;:16;:18::i;:::-;3182:35;3204:7;3213:3;;3182:21;:35::i;3482:162:78:-;-1:-1:-1;;;;;3602:25:78;;;3579:4;3602:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3482:162::o;4680:160:30:-;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;:::-;4790:43:30::1;4810:9;4821:11;4790:19;:43::i;2321:198:3:-:0;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:3;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:3;;25672:2:81;2401:73:3::1;::::0;::::1;25654:21:81::0;25711:2;25691:18;;;25684:30;25750:34;25730:18;;;25723:62;-1:-1:-1;;;25801:18:81;;;25794:36;25847:19;;2401:73:3::1;25470:402:81::0;2401:73:3::1;2484:28;2503:8;2484:18;:28::i;7056:191:30:-:0;7157:7;2261:21:8;:19;:21::i;:::-;7176:18:30::1;:16;:18::i;:::-;7211:29;7226:2;7230:3;;7211:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;7211:29:30;-1:-1:-1;7211:29:30;;-1:-1:-1;7211:14:30::1;::::0;-1:-1:-1;7211:29:30:i:1;1151:270:34:-:0;1258:4;-1:-1:-1;;;;;;1281:51:34;;-1:-1:-1;;;1281:51:34;;:93;;-1:-1:-1;;;;;;;1336:38:34;;-1:-1:-1;;;1336:38:34;1281:93;:133;;;;1378:36;1402:11;1378:23;:36::i;1334:300:78:-;1436:4;-1:-1:-1;;;;;;1471:40:78;;-1:-1:-1;;;1471:40:78;;:104;;-1:-1:-1;;;;;;;1527:48:78;;-1:-1:-1;;;1527:48:78;1471:156;;;;1591:36;1615: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;4247:127;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;;26079:2:81;5637:91:32;;;26061:21:81;26118:2;26098:18;;;26091:30;-1:-1:-1;;;26137:18:81;;;26130:55;26202:18;;5637:91:32;25877: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;11742:133:78:-;11823:16;11831:7;11823;:16::i;:::-;11815:53;;;;-1:-1:-1;;;11815:53:78;;;;;;;:::i;11040:175::-;11114:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11114:29:78;-1:-1:-1;;;;;11114:29:78;;;;;;;;:24;;11167:27;11114:24;11167:18;:27::i;:::-;-1:-1:-1;;;;;11158:50:78;;;;;;;;;;;11040:175;;:::o;6122:134::-;6187:4;6210:19;;;:10;:19;;;;;:25;-1:-1:-1;;;;;6210:25:78;:39;;;6122:134::o;10341:135:32:-;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;13276:257:30:-;13349:7;13399:19;;;:10;:19;;;;;:24;-1:-1:-1;;;13399:24:30;;-1:-1:-1;;;;;13399:24:30;;;13438:19;;;;13434:42;;-1:-1:-1;13474:1:30;;13276:257;-1:-1:-1;;13276:257:30:o;13434:42::-;13493:33;;;;;;:17;:33;;;;;;-1:-1:-1;;;;;13493:33:30;;13276:257;-1:-1:-1;;13276:257:30:o;6414:265:78:-;6507:4;6523:13;6539:27;6558:7;6539:18;:27::i;:::-;6523:43;;6595:5;-1:-1:-1;;;;;6584:16:78;:7;-1:-1:-1;;;;;6584:16:78;;:52;;;;6604:32;6621:5;6628:7;6604:16;:32::i;:::-;6584:87;;;;6664:7;-1:-1:-1;;;;;6640:31:78;:20;6652:7;6640:11;:20::i;:::-;-1:-1:-1;;;;;6640:31:78;;6584:87;6576:96;6414:265;-1:-1:-1;;;;6414:265:78:o;9735:1193::-;9854:26;9883:19;;;:10;:19;;;;;;;;;9854:48;;;;;;;;;-1:-1:-1;;;;;9854:48:78;;;;;;-1:-1:-1;;;9854:48:78;;;-1:-1:-1;;;;;9854:48:78;;;;;;;;;9961:13;;;;9953:63;;;;-1:-1:-1;;;9953:63:78;;29913:2:81;9953:63:78;;;29895:21:81;29952:2;29932:18;;;29925:30;29991:34;29971:18;;;29964:62;-1:-1:-1;;;30042:18:81;;;30035:35;30087:19;;9953:63:78;29711:401:81;9953:63:78;-1:-1:-1;;;;;10034:16:78;;10026:65;;;;-1:-1:-1;;;10026:65:78;;30319:2:81;10026:65:78;;;30301:21:81;30358:2;30338:18;;;30331:30;30397:34;30377:18;;;30370:62;-1:-1:-1;;;30448:18:81;;;30441:34;30492:19;;10026:65:78;30117:400:81;10026:65:78;10116:14;;;;10141:45;10162:4;10168:2;10172:7;10116:14;10141:20;:45::i;:::-;10248:29;10265:1;10269:7;10248:8;:29::i;:::-;-1:-1:-1;;;;;10721:15:78;;;;;;;:9;:15;;;;;;;;:20;;-1:-1:-1;;10721:20:78;;;10755:13;;;;;;;;;:18;;10740:1;10755:18;;;10793:19;;;:10;:19;;;;;;:30;;-1:-1:-1;;;;;;10793:30:78;;;;;10839:27;;10804:7;;10755:13;10721:15;-1:-1:-1;;;;;;;;;;;10839:27:78;;10877:44;9844:1084;;;9735:1193;;;:::o;2336:287:8:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:8;;30724:2:81;2460:63:8;;;30706:21:81;30763:2;30743:18;;;30736:30;30802:33;30782:18;;;30775:61;30853:18;;2460:63:8;30522:355:81;2460:63:8;1759:1;2598:7;:18;2336:287::o;3566:132:32:-;3626:32;:11;3647:10;3626:20;:32::i;:::-;3618:73;;;;-1:-1:-1;;;3618:73:32;;31084:2:81;3618:73:32;;;31066:21:81;31123:2;31103:18;;;31096:30;-1:-1:-1;;;31142:18:81;;;31135:58;31210:18;;3618:73:32;30882:352:81;9145:525:30;9255:7;9278;9289:1;9278:12;9274:91;;9308:11;;9306:13;;;;;:::i;:::-;;;;-1:-1:-1;9343:11:30;;;-1:-1:-1;9274:91:30;9375:34;9397:2;9401:7;9375:21;:34::i;:::-;9539:10;9521:29;;;;:17;:29;;;;;;9485:66;;9495:2;;9499:7;;9521:29;;9516:2;9508:10;;;9485:66;;;:9;:66::i;:::-;9566:17;;:21;9562:77;;9603:19;;;;:10;:19;;;;;:25;9625:3;9603:19;:25;:::i;:::-;;9562:77;-1:-1:-1;9656:7:30;9145:525;-1:-1:-1;;;9145:525:30: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;;32798:2:81;10698:62:32;;;32780:21:81;32837:2;32817:18;;;32810:30;-1:-1:-1;;;32856:18:81;;;32849:58;32924:18;;10698:62:32;32596: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;;33682:2:81;1654:68:3;;;33664:21:81;;;33701:18;;;33694:30;33760:34;33740:18;;;33733:62;33812:18;;1654:68:3;33480:356:81;8615:156:23;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:23;;8711:7;:53::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;5078:476:34:-;5209:17;;5229:6;5209:17;;;:26;5201:58;;;;-1:-1:-1;;;5201:58:34;;34043:2:81;5201:58:34;;;34025:21:81;34082:2;34062:18;;;34055:30;-1:-1:-1;;;34101:18:81;;;34094:49;34160:18;;5201:58:34;33841:343:81;5201:58:34;-1:-1:-1;;;;;5273:28:34;;;;;;:17;:28;;;;;;;;:33;;5269:207;;5324:17;5322:19;;5324:17;;5322:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5386:17;;;-1:-1:-1;;;;;5355:28:34;;-1:-1:-1;5355:28:34;;;:17;:28;;;;;;;;:48;;5386:17;;;-1:-1:-1;;5355:48:34;;;;;;;;;;5435:17;;;;;5417:36;;:17;:36;;;;;;:48;;-1:-1:-1;;;;;;5417:48:34;;;;;;5269:207;5485:62;5510:9;5521:7;;5530:16;5485:24;:62::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;6142:193::-;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;8687:724:78:-;8746:26;8775:19;;;:10;:19;;;;;;;;8746:48;;;;;;;;;-1:-1:-1;;;;;8746:48:78;;;;;-1:-1:-1;;;8746:48:78;;;-1:-1:-1;;;;;8746:48:78;;;;;;;;;;;;8884:54;;8746:48;;8775:19;8746:48;8884:20;:54::i;:::-;8976:29;8993:1;8997:7;8976:8;:29::i;:::-;-1:-1:-1;;;;;9221:16:78;;;;;;:9;:16;;;;;;;;:21;;-1:-1:-1;;9221:21:78;;;9269:19;;;:10;:19;;;;;;9262:26;;;9304:36;9280:7;;9221:16;-1:-1:-1;;;;;;;;;;;9304:36:78;9221:16;;9304:36;9351:53;10573:199:30;3271:545:34;-1:-1:-1;;;;;3427:23:34;;;3423:247;;3469:93;3501:9;-1:-1:-1;;;3469:31:34;:93::i;:::-;3465:195;;;3581:65;;-1:-1:-1;;;3581:65:34;;-1:-1:-1;;;;;3581:49:34;;;;;:65;;3631:5;;3638:7;;3581:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3465:195;3724:19;;;;:10;:19;;;;;3718:33;;;;;:::i;:::-;:38;;-1:-1:-1;3714:95:34;;3779:19;;;;:10;:19;;;;;3772:26;;;:::i;1186:320:5:-;-1:-1:-1;;;;;1476:19:5;;:23;;;1186:320::o;569:149:80:-;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;672:39:80::1;696:5;703:7;672:23;:39::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;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;6322:417:30:-;6414:7;6437;6448:1;6437:12;6433:91;;6467:11;;6465:13;;;;;:::i;:::-;;;;-1:-1:-1;6502:11:30;;;-1:-1:-1;6433:91:30;6595:25;6605:2;6609:7;6618:1;6595:9;:25::i;:::-;6635:17;;:21;6631:77;;6672:19;;;;:10;:19;;;;;:25;6694:3;6672:19;:25;:::i;:::-;;6631:77;-1:-1:-1;6725:7:30;6322:417;-1:-1:-1;;6322:417:30:o;7078:118:32:-;7149:31;;;:19;:31;;;:40;7183:6;;7149:31;:40;:::i;11351:307:78:-;11501:8;-1:-1:-1;;;;;11492:17:78;:5;-1:-1:-1;;;;;11492:17:78;;11484:55;;;;-1:-1:-1;;;11484:55:78;;35005:2:81;11484:55:78;;;34987:21:81;35044:2;35024:18;;;35017:30;-1:-1:-1;;;35063:18:81;;;35056:55;35128:18;;11484:55:78;34803:349:81;11484:55:78;-1:-1:-1;;;;;11549:25:78;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11549:46:78;;;;;;;;;;11610:41;;540::81;;;11610::78;;513:18:81;11610:41:78;;;;;;;11351:307;;;:::o;1502:353:34:-;1605:100;1637:9;-1:-1:-1;;;1605:31:34;:100::i;:::-;1601:248;;;-1:-1:-1;;;;;1721:37:34;;;;;;:26;:37;;;;;;;;;:47;;-1:-1:-1;;1721:47:34;;;;;;;;;;1787:51;;540:41:81;;;1787:51:34;;513:18:81;1787:51:34;;;;;;;1502:353;;:::o;5514:305:78:-;5664:28;5674:4;5680:2;5684:7;5664:9;:28::i;:::-;5710:47;5733:4;5739:2;5743:7;5752:4;5710:22;:47::i;:::-;5702:110;;;;-1:-1:-1;;;5702:110:78;;;;;;;:::i;10104:161:32:-;10174:34;10236:22;10250:7;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;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;5351:163::-;5424:44;;5457:10;;-1:-1:-1;;;;;5424:44:32;;;;;;;;5478:29;:11;5497:9;5478:18;:29::i;1927:539:34:-;2023:31;:11;2044:9;2023:20;:31::i;:::-;2015:74;;;;-1:-1:-1;;;2015:74:34;;39933:2:81;2015:74:34;;;39915:21:81;39972:2;39952:18;;;39945:30;40011:32;39991:18;;;39984:60;40061:18;;2015:74:34;39731:354:81;2015:74:34;-1:-1:-1;;;;;2107:25:34;;;;:122;;;2136:93;2168:11;-1:-1:-1;;;2136:31:34;:93::i;:::-;2099:150;;;;-1:-1:-1;;;2099:150:34;;40292:2:81;2099:150:34;;;40274:21:81;40331:2;40311:18;;;40304:30;-1:-1:-1;;;40350:18:81;;;40343:45;40405:18;;2099:150:34;40090:339:81;2099:150:34;-1:-1:-1;;;;;2263:32:34;;;;;;;:21;:32;;;;;;;;:47;;;;2259:201;;-1:-1:-1;;;;;2326:32:34;;;;;;;:21;:32;;;;;;:46;;-1:-1:-1;;;;;;2326:46:34;;;;;;;;;2391:58;2438:10;;2326:46;:32;2391:58;;;1927:539;;:::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;11997:430::-;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;;40636:2:81;12360:60:32;;;40618:21:81;40675:2;40655:18;;;40648:30;-1:-1:-1;;;40694:18:81;;;40687:53;40757:18;;12360:60:32;40434: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;;1088:178:30;1210:49;1227:4;1233:2;1237:7;1253:4;1210:16;:49::i;2670:264:34:-;2775:10;2798:1;2753:33;;;:21;:33;;;;;;-1:-1:-1;;;;;2753:33:34;:47;2749:179;;2868:10;2846:33;;;;:21;:33;;;;;;;;2816:101;;-1:-1:-1;;;2816:101:34;;;;;41286:34:81;;;;-1:-1:-1;;;;;41356:15:81;;;41336:18;;;41329:43;41388:18;;;41381:34;;;2846:33:34;;2816:76;;41221:18:81;;2816:101:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7009:137:78;7102:37;7112:2;7116:7;7125:9;7102:37;;;;;;;;;;;;:9;:37::i;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;;;;;4370:463:32;-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;;41893:2:81;4492:72:32;;;41875:21:81;41932:1;41912:18;;;41905:29;-1:-1:-1;;;41950:18:81;;;41943:37;41997:18;;4492:72:32;41691: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;4904:118:23:-;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::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;724:160:80:-;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;837:5:80::1;:13;845:5:::0;837;:13:::1;:::i;:::-;-1:-1:-1::0;860:7:80::1;:17;870:7:::0;860;: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;2206:404:23:-:0;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;;12427:829:78;12576:4;12596:15;:2;-1:-1:-1;;;;;12596:13:78;;:15::i;:::-;12592:658;;;12631:69;;-1:-1:-1;;;12631:69:78;;-1:-1:-1;;;;;12631:36:78;;;;;:69;;12668:10;;12680:4;;12686:7;;12695:4;;12631:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12631:69:78;;;;;;;;-1:-1:-1;;12631:69:78;;;;;;;;;;;;:::i;:::-;;;12627:571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12867:6;:13;12884:1;12867:18;12863:321;;12909:60;;-1:-1:-1;;;12909:60:78;;;;;;;:::i;12863:321::-;13136:6;13130:13;13121:6;13117:2;13113:15;13106:38;12627:571;-1:-1:-1;;;;;;12750:51:78;-1:-1:-1;;;12750:51:78;;-1:-1:-1;12743:58:78;;12592:658;-1:-1:-1;13235:4:78;13228:11;;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;4107:269:34:-;-1:-1:-1;;;;;4262:18:34;;4258:31;4282:7;4258:31;4335:33;;;;;;;:17;:33;;;;;;4299:70;;4316:4;;4322:2;;4326:7;;-1:-1:-1;;;;;4335:33:34;4299:16;:70::i;7367:1103:78:-;-1:-1:-1;;;;;7525:16:78;;7517:61;;;;-1:-1:-1;;;7517:61:78;;42976:2:81;7517:61:78;;;42958:21:81;;;42995:18;;;42988:30;43054:34;43034:18;;;43027:62;43106:18;;7517:61:78;42774:356:81;7517:61:78;7597:16;7605:7;7597;:16::i;:::-;7596:17;7588:58;;;;-1:-1:-1;;;7588:58:78;;43337:2:81;7588:58:78;;;43319:21:81;43376:2;43356:18;;;43349:30;-1:-1:-1;;;43395:18:81;;;43388:58;43463:18;;7588:58:78;43135:352:81;7588:58:78;7657:56;7686:1;7690:2;7694:7;7703:9;7657:20;:56::i;:::-;-1:-1:-1;;;;;8055:13:78;;;;;;;:9;:13;;;;;;;;:18;;8072:1;8055:18;;;8116:73;;;;;;;;;;-1:-1:-1;;;;;8116:73:78;;;;;;;;;8094:19;;;:10;:19;;;;;;:95;;;;;-1:-1:-1;;;8094:95:78;;;;;;;;;;;;8204:33;;8105:7;;8055:13;-1:-1:-1;;;;;;;;;;;8204:33:78;8055:13;;8204:33;8334:53;8365:1;8369:2;8373:7;8382:4;8334:22;:53::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;;;;;;43654:33:81;;4433:71:20;;;;43636:52:81;;;;4433:71:20;;;;;;;;;;43609: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;4382:640:34:-;-1:-1:-1;;;;;4533:18:34;;4529:31;4553:7;4529:31;-1:-1:-1;;;;;4574:23:34;;;;;;:64;;-1:-1:-1;;;;;;4601:37:34;;;;;;:26;:37;;;;;;;;4574:64;4570:446;;;4662:96;;-1:-1:-1;;;4662:96:34;;-1:-1:-1;;;;;4662:65:34;;;;;:96;;4728:10;;4740:4;;4746:2;;4750:7;;4662:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4654:135;;;;-1:-1:-1;;;4654:135:34;;;;;;;:::i;:::-;4570:446;;;4810:20;;-1:-1:-1;;;;;4810:20:34;:34;4806:210;;4906:20;;4867:107;;-1:-1:-1;;;4867:107:34;;-1:-1:-1;;;;;4906:20:34;;;;4867:76;;:107;;4944:10;;4956:4;;4962:2;;4966:7;;4867:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4859:146;;;;-1:-1:-1;;;4859:146:34;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:131:81;-1:-1:-1;;;;;;88:32:81;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:131::-;-1:-1:-1;;;;;667:31:81;;657:42;;647:70;;713:1;710;703:12;728:247;787:6;840:2;828:9;819:7;815:23;811:32;808:52;;;856:1;853;846:12;808:52;895:9;882:23;914:31;939:5;914:31;:::i;980:250::-;1065:1;1075:113;1089:6;1086:1;1083:13;1075:113;;;1165:11;;;1159:18;1146:11;;;1139:39;1111:2;1104:10;1075:113;;;-1:-1:-1;;1222:1:81;1204:16;;1197:27;980:250::o;1235:271::-;1277:3;1315:5;1309:12;1342:6;1337:3;1330:19;1358:76;1427:6;1420:4;1415:3;1411:14;1404:4;1397:5;1393:16;1358:76;:::i;:::-;1488:2;1467:15;-1:-1:-1;;1463:29:81;1454:39;;;;1495:4;1450:50;;1235:271;-1:-1:-1;;1235:271:81:o;1511:220::-;1660:2;1649:9;1642:21;1623:4;1680:45;1721:2;1710:9;1706:18;1698:6;1680:45;:::i;1736:180::-;1795:6;1848:2;1836:9;1827:7;1823:23;1819:32;1816:52;;;1864:1;1861;1854:12;1816:52;-1:-1:-1;1887:23:81;;1736:180;-1:-1:-1;1736:180:81:o;1921:203::-;-1:-1:-1;;;;;2085:32:81;;;;2067:51;;2055:2;2040:18;;1921:203::o;2129:315::-;2197:6;2205;2258:2;2246:9;2237:7;2233:23;2229:32;2226:52;;;2274:1;2271;2264:12;2226:52;2313:9;2300:23;2332:31;2357:5;2332:31;:::i;:::-;2382:5;2434:2;2419:18;;;;2406:32;;-1:-1:-1;;;2129:315:81:o;2449:435::-;2502:3;2540:5;2534:12;2567:6;2562:3;2555:19;2593:4;2622:2;2617:3;2613:12;2606:19;;2659:2;2652:5;2648:14;2680:1;2690:169;2704:6;2701:1;2698:13;2690:169;;;2765:13;;2753:26;;2799:12;;;;2834:15;;;;2726:1;2719:9;2690:169;;;-1:-1:-1;2875:3:81;;2449:435;-1:-1:-1;;;;;2449:435:81:o;2889:261::-;3068:2;3057:9;3050:21;3031:4;3088:56;3140:2;3129:9;3125:18;3117:6;3088:56;:::i;3155:348::-;3207:8;3217:6;3271:3;3264:4;3256:6;3252:17;3248:27;3238:55;;3289:1;3286;3279:12;3238:55;-1:-1:-1;3312:20:81;;-1:-1:-1;;;;;3344:30:81;;3341:50;;;3387:1;3384;3377:12;3341:50;3424:4;3416:6;3412:17;3400:29;;3476:3;3469:4;3460:6;3452;3448:19;3444:30;3441:39;3438:59;;;3493:1;3490;3483:12;3508:479;3588:6;3596;3604;3657:2;3645:9;3636:7;3632:23;3628:32;3625:52;;;3673:1;3670;3663:12;3625:52;3709:9;3696:23;3686:33;;3770:2;3759:9;3755:18;3742:32;-1:-1:-1;;;;;3789:6:81;3786:30;3783:50;;;3829:1;3826;3819:12;3783:50;3868:59;3919:7;3910:6;3899:9;3895:22;3868:59;:::i;:::-;3508:479;;3946:8;;-1:-1:-1;3842:85:81;;-1:-1:-1;;;;3508:479:81:o;3992:375::-;4063:8;4073:6;4127:3;4120:4;4112:6;4108:17;4104:27;4094:55;;4145:1;4142;4135:12;4094:55;-1:-1:-1;4168:20:81;;-1:-1:-1;;;;;4200:30:81;;4197:50;;;4243:1;4240;4233:12;4197:50;4280:4;4272:6;4268:17;4256:29;;4340:3;4333:4;4323:6;4320:1;4316:14;4308:6;4304:27;4300:38;4297:47;4294:67;;;4357:1;4354;4347:12;4372:865;4511:6;4519;4527;4535;4543;4596:2;4584:9;4575:7;4571:23;4567:32;4564:52;;;4612:1;4609;4602:12;4564:52;4648:9;4635:23;4625:33;;4709:2;4698:9;4694:18;4681:32;-1:-1:-1;;;;;4773:2:81;4765:6;4762:14;4759:34;;;4789:1;4786;4779:12;4759:34;4828:78;4898:7;4889:6;4878:9;4874:22;4828:78;:::i;:::-;4925:8;;-1:-1:-1;4802:104:81;-1:-1:-1;5013:2:81;4998:18;;4985:32;;-1:-1:-1;5029:16:81;;;5026:36;;;5058:1;5055;5048:12;5026:36;;5097:80;5169:7;5158:8;5147:9;5143:24;5097:80;:::i;:::-;4372:865;;;;-1:-1:-1;4372:865:81;;-1:-1:-1;5196:8:81;;5071:106;4372:865;-1:-1:-1;;;4372:865:81:o;5242:456::-;5319:6;5327;5335;5388:2;5376:9;5367:7;5363:23;5359:32;5356:52;;;5404:1;5401;5394:12;5356:52;5443:9;5430:23;5462:31;5487:5;5462:31;:::i;:::-;5512:5;-1:-1:-1;5569:2:81;5554:18;;5541:32;5582:33;5541:32;5582:33;:::i;:::-;5242:456;;5634:7;;-1:-1:-1;;;5688:2:81;5673:18;;;;5660:32;;5242:456::o;5885:248::-;5953:6;5961;6014:2;6002:9;5993:7;5989:23;5985:32;5982:52;;;6030:1;6027;6020:12;5982:52;-1:-1:-1;;6053:23:81;;;6123:2;6108:18;;;6095:32;;-1:-1:-1;5885:248:81:o;6138:274::-;-1:-1:-1;;;;;6330:32:81;;;;6312:51;;6394:2;6379:18;;6372:34;6300:2;6285:18;;6138:274::o;6417:411::-;6488:6;6496;6549:2;6537:9;6528:7;6524:23;6520:32;6517:52;;;6565:1;6562;6555:12;6517:52;6605:9;6592:23;-1:-1:-1;;;;;6630:6:81;6627:30;6624:50;;;6670:1;6667;6660:12;6624:50;6709:59;6760:7;6751:6;6740:9;6736:22;6709:59;:::i;:::-;6787:8;;6683:85;;-1:-1:-1;6417:411:81;-1:-1:-1;;;;6417:411:81:o;6833:546::-;6913:6;6921;6929;6982:2;6970:9;6961:7;6957:23;6953:32;6950:52;;;6998:1;6995;6988:12;6950:52;7037:9;7024:23;7056:31;7081:5;7056:31;:::i;:::-;7106:5;-1:-1:-1;7162:2:81;7147:18;;7134:32;-1:-1:-1;;;;;7178:30:81;;7175:50;;;7221:1;7218;7211:12;7384:658;7555:2;7607:21;;;7677:13;;7580:18;;;7699:22;;;7526:4;;7555:2;7778:15;;;;7752:2;7737:18;;;7526:4;7821:195;7835:6;7832:1;7829:13;7821:195;;;7900:13;;-1:-1:-1;;;;;7896:39:81;7884:52;;7991:15;;;;7956:12;;;;7932:1;7850:9;7821:195;;;-1:-1:-1;8033:3:81;;7384:658;-1:-1:-1;;;;;;7384:658:81:o;8047:797::-;8177:6;8185;8193;8201;8254:2;8242:9;8233:7;8229:23;8225:32;8222:52;;;8270:1;8267;8260:12;8222:52;8310:9;8297:23;-1:-1:-1;;;;;8380:2:81;8372:6;8369:14;8366:34;;;8396:1;8393;8386:12;8366:34;8435:78;8505:7;8496:6;8485:9;8481:22;8435:78;:::i;:::-;8532:8;;-1:-1:-1;8409:104:81;-1:-1:-1;8620:2:81;8605:18;;8592:32;;-1:-1:-1;8636:16:81;;;8633:36;;;8665:1;8662;8655:12;8633:36;;8704:80;8776:7;8765:8;8754:9;8750:24;8704:80;:::i;:::-;8047:797;;;;-1:-1:-1;8803:8:81;-1:-1:-1;;;;8047:797:81:o;8849:592::-;8956:6;8964;8972;9025:2;9013:9;9004:7;9000:23;8996:32;8993:52;;;9041:1;9038;9031:12;8993:52;9080:9;9067:23;9099:31;9124:5;9099:31;:::i;:::-;9149:5;-1:-1:-1;9205:2:81;9190:18;;9177:32;-1:-1:-1;;;;;9221:30:81;;9218:50;;;9264:1;9261;9254:12;9218:50;9303:78;9373:7;9364:6;9353:9;9349:22;9303:78;:::i;9446:118::-;9532:5;9525:13;9518:21;9511:5;9508:32;9498:60;;9554:1;9551;9544:12;9569:681;9655:6;9663;9671;9679;9732:2;9720:9;9711:7;9707:23;9703:32;9700:52;;;9748:1;9745;9738:12;9700:52;9787:9;9774:23;9806:31;9831:5;9806:31;:::i;:::-;9856:5;-1:-1:-1;9912:2:81;9897:18;;9884:32;-1:-1:-1;;;;;9928:30:81;;9925:50;;;9971:1;9968;9961:12;9925:50;10010:59;10061:7;10052:6;10041:9;10037:22;10010:59;:::i;:::-;10088:8;;-1:-1:-1;9984:85:81;-1:-1:-1;;10175:2:81;10160:18;;10147:32;10188:30;10147:32;10188:30;:::i;:::-;9569:681;;;;-1:-1:-1;9569:681:81;;-1:-1:-1;;9569:681:81:o;10839:127::-;10900:10;10895:3;10891:20;10888:1;10881:31;10931:4;10928:1;10921:15;10955:4;10952:1;10945:15;10971:275;11042:2;11036:9;11107:2;11088:13;;-1:-1:-1;;11084:27:81;11072:40;;-1:-1:-1;;;;;11127:34:81;;11163:22;;;11124:62;11121:88;;;11189:18;;:::i;:::-;11225:2;11218:22;10971:275;;-1:-1:-1;10971:275:81:o;11251:187::-;11300:4;-1:-1:-1;;;;;11325:6:81;11322:30;11319:56;;;11355:18;;:::i;:::-;-1:-1:-1;11421:2:81;11400:15;-1:-1:-1;;11396:29:81;11427:4;11392:40;;11251:187::o;11443:338::-;11508:5;11537:53;11553:36;11582:6;11553:36;:::i;:::-;11537:53;:::i;:::-;11528:62;;11613:6;11606:5;11599:21;11653:3;11644:6;11639:3;11635:16;11632:25;11629:45;;;11670:1;11667;11660:12;11629:45;11719:6;11714:3;11707:4;11700:5;11696:16;11683:43;11773:1;11766:4;11757:6;11750:5;11746:18;11742:29;11735:40;11443:338;;;;;:::o;11786:222::-;11829:5;11882:3;11875:4;11867:6;11863:17;11859:27;11849:55;;11900:1;11897;11890:12;11849:55;11922:80;11998:3;11989:6;11976:20;11969:4;11961:6;11957:17;11922:80;:::i;12013:543::-;12101:6;12109;12162:2;12150:9;12141:7;12137:23;12133:32;12130:52;;;12178:1;12175;12168:12;12130:52;12218:9;12205:23;-1:-1:-1;;;;;12288:2:81;12280:6;12277:14;12274:34;;;12304:1;12301;12294:12;12274:34;12327:50;12369:7;12360:6;12349:9;12345:22;12327:50;:::i;:::-;12317:60;;12430:2;12419:9;12415:18;12402:32;12386:48;;12459:2;12449:8;12446:16;12443:36;;;12475:1;12472;12465:12;12443:36;;12498:52;12542:7;12531:8;12520:9;12516:24;12498:52;:::i;:::-;12488:62;;;12013:543;;;;;:::o;13367:540::-;13444:6;13452;13460;13513:2;13501:9;13492:7;13488:23;13484:32;13481:52;;;13529:1;13526;13519:12;13481:52;13569:9;13556:23;-1:-1:-1;;;;;13594:6:81;13591:30;13588:50;;;13634:1;13631;13624:12;13588:50;13673:59;13724:7;13715:6;13704:9;13700:22;13673:59;:::i;:::-;13751:8;;-1:-1:-1;13647:85:81;-1:-1:-1;;13836:2:81;13821:18;;13808:32;13849:28;13808:32;13849:28;:::i;:::-;13896:5;13886:15;;;13367:540;;;;;:::o;13912:382::-;13977:6;13985;14038:2;14026:9;14017:7;14013:23;14009:32;14006:52;;;14054:1;14051;14044:12;14006:52;14093:9;14080:23;14112:31;14137:5;14112:31;:::i;:::-;14162:5;-1:-1:-1;14219:2:81;14204:18;;14191:32;14232:30;14191:32;14232:30;:::i;:::-;14281:7;14271:17;;;13912:382;;;;;:::o;14299:241::-;14355:6;14408:2;14396:9;14387:7;14383:23;14379:32;14376:52;;;14424:1;14421;14414:12;14376:52;14463:9;14450:23;14482:28;14504:5;14482:28;:::i;14545:415::-;14612:6;14620;14673:2;14661:9;14652:7;14648:23;14644:32;14641:52;;;14689:1;14686;14679:12;14641:52;14728:9;14715:23;14747:31;14772:5;14747:31;:::i;:::-;14797:5;-1:-1:-1;14854:2:81;14839:18;;14826:32;14902:6;14889:20;;14877:33;;14867:61;;14924:1;14921;14914:12;14965:932;15104:6;15112;15120;15128;15136;15189:2;15177:9;15168:7;15164:23;15160:32;15157:52;;;15205:1;15202;15195:12;15157:52;15244:9;15231:23;15263:31;15288:5;15263:31;:::i;:::-;15313:5;-1:-1:-1;15369:2:81;15354:18;;15341:32;-1:-1:-1;;;;;15422:14:81;;;15419:34;;;15449:1;15446;15439:12;16107:795;16202:6;16210;16218;16226;16279:3;16267:9;16258:7;16254:23;16250:33;16247:53;;;16296:1;16293;16286:12;16247:53;16335:9;16322:23;16354:31;16379:5;16354:31;:::i;:::-;16404:5;-1:-1:-1;16461:2:81;16446:18;;16433:32;16474:33;16433:32;16474:33;:::i;:::-;16526:7;-1:-1:-1;16580:2:81;16565:18;;16552:32;;-1:-1:-1;16635:2:81;16620:18;;16607:32;-1:-1:-1;;;;;16651:30:81;;16648:50;;;16694:1;16691;16684:12;16648:50;16717:22;;16770:4;16762:13;;16758:27;-1:-1:-1;16748:55:81;;16799:1;16796;16789:12;16748:55;16822:74;16888:7;16883:2;16870:16;16865:2;16861;16857:11;16822:74;:::i;:::-;16812:84;;;16107:795;;;;;;;:::o;16907:469::-;16968:3;17006:5;17000:12;17033:6;17028:3;17021:19;17059:4;17088:2;17083:3;17079:12;17072:19;;17125:2;17118:5;17114:14;17146:1;17156:195;17170:6;17167:1;17164:13;17156:195;;;17235:13;;-1:-1:-1;;;;;17231:39:81;17219:52;;17291:12;;;;17326:15;;;;17267:1;17185:9;17156:195;;17381:285;17576:2;17565:9;17558:21;17539:4;17596:64;17656:2;17645:9;17641:18;17633:6;17596:64;:::i;17671:489::-;17944:2;17933:9;17926:21;17907:4;17970:64;18030:2;18019:9;18015:18;18007:6;17970:64;:::i;:::-;18082:9;18074:6;18070:22;18065:2;18054:9;18050:18;18043:50;18110:44;18147:6;18139;18110:44;:::i;:::-;18102:52;17671:489;-1:-1:-1;;;;;17671:489:81:o;18165:171::-;18232:20;;-1:-1:-1;;;;;18281:30:81;;18271:41;;18261:69;;18326:1;18323;18316:12;18341:319;18408:6;18416;18469:2;18457:9;18448:7;18444:23;18440:32;18437:52;;;18485:1;18482;18475:12;18437:52;18524:9;18511:23;18543:31;18568:5;18543:31;:::i;:::-;18593:5;-1:-1:-1;18617:37:81;18650:2;18635:18;;18617:37;:::i;:::-;18607:47;;18341:319;;;;;:::o;18665:388::-;18733:6;18741;18794:2;18782:9;18773:7;18769:23;18765:32;18762:52;;;18810:1;18807;18800:12;18762:52;18849:9;18836:23;18868:31;18893:5;18868:31;:::i;:::-;18918:5;-1:-1:-1;18975:2:81;18960:18;;18947:32;18988:33;18947:32;18988:33;:::i;19058:400::-;19260:2;19242:21;;;19299:2;19279:18;;;19272:30;19338:34;19333:2;19318:18;;19311:62;-1:-1:-1;;;19404:2:81;19389:18;;19382:34;19448:3;19433:19;;19058:400::o;19463:380::-;19542:1;19538:12;;;;19585;;;19606:61;;19660:4;19652:6;19648:17;19638:27;;19606:61;19713:2;19705:6;19702:14;19682:18;19679:38;19676:161;;19759:10;19754:3;19750:20;19747:1;19740:31;19794:4;19791:1;19784:15;19822:4;19819:1;19812:15;20680:341;20882:2;20864:21;;;20921:2;20901:18;;;20894:30;-1:-1:-1;;;20955:2:81;20940:18;;20933:47;21012:2;20997:18;;20680:341::o;21377:345::-;21579:2;21561:21;;;21618:2;21598:18;;;21591:30;-1:-1:-1;;;21652:2:81;21637:18;;21630:51;21713:2;21698:18;;21377:345::o;21727:409::-;21929:2;21911:21;;;21968:2;21948:18;;;21941:30;22007:34;22002:2;21987:18;;21980:62;-1:-1:-1;;;22073:2:81;22058:18;;22051:43;22126:3;22111:19;;21727:409::o;22141:127::-;22202:10;22197:3;22193:20;22190:1;22183:31;22233:4;22230:1;22223:15;22257:4;22254:1;22247:15;22273:127;22334:10;22329:3;22325:20;22322:1;22315:31;22365:4;22362:1;22355:15;22389:4;22386:1;22379:15;22405:135;22444:3;22465:17;;;22462:43;;22485:18;;:::i;:::-;-1:-1:-1;22532:1:81;22521:13;;22405:135::o;22545:125::-;22610:9;;;22631:10;;;22628:36;;;22644:18;;:::i;22675:522::-;22753:4;22759:6;22819:11;22806:25;22913:2;22909:7;22898:8;22882:14;22878:29;22874:43;22854:18;22850:68;22840:96;;22932:1;22929;22922:12;22840:96;22959:33;;23011:20;;;-1:-1:-1;;;;;;23043:30:81;;23040:50;;;23086:1;23083;23076:12;23040:50;23119:4;23107:17;;-1:-1:-1;23150:14:81;23146:27;;;23136:38;;23133:58;;;23187:1;23184;23177:12;23202:184;23260:6;23313:2;23301:9;23292:7;23288:23;23284:32;23281:52;;;23329:1;23326;23319:12;23281:52;23352:28;23370:9;23352:28;:::i;24365:337::-;24567:2;24549:21;;;24606:2;24586:18;;;24579:30;-1:-1:-1;;;24640:2:81;24625:18;;24618:43;24693:2;24678:18;;24365:337::o;24707:348::-;24909:2;24891:21;;;24948:2;24928:18;;;24921:30;-1:-1:-1;;;24982:2:81;24967:18;;24960:54;25046:2;25031:18;;24707:348::o;26231:337::-;26433:2;26415:21;;;26472:2;26452:18;;;26445:30;-1:-1:-1;;;26506:2:81;26491:18;;26484:43;26559:2;26544:18;;26231:337::o;26699:545::-;26801:2;26796:3;26793:11;26790:448;;;26837:1;26862:5;26858:2;26851:17;26907:4;26903:2;26893:19;26977:2;26965:10;26961:19;26958:1;26954:27;26948:4;26944:38;27013:4;27001:10;26998:20;26995:47;;;-1:-1:-1;27036:4:81;26995:47;27091:2;27086:3;27082:12;27079:1;27075:20;27069:4;27065:31;27055:41;;27146:82;27164:2;27157:5;27154:13;27146:82;;;27209:17;;;27190:1;27179:13;27146:82;;27249:166;-1:-1:-1;;27377:1:81;27373:11;;;27369:24;27365:29;27355:40;27401:1;27397:11;;;;27352:57;;27249:166::o;27420:1206::-;-1:-1:-1;;;;;27539:3:81;27536:27;27533:53;;;27566:18;;:::i;:::-;27595:94;27685:3;27645:38;27677:4;27671:11;27645:38;:::i;:::-;27639:4;27595:94;:::i;:::-;27715:1;27740:2;27735:3;27732:11;27757:1;27752:616;;;;28412:1;28429:3;28426:93;;;-1:-1:-1;28485:19:81;;;28472:33;28426:93;28545:64;28605:3;28598:5;28545:64;:::i;:::-;28539:4;28532:78;;27725:895;;27752:616;26646:1;26639:14;;;26683:4;26670:18;;-1:-1:-1;;27788:17:81;;;27889:9;27911:229;27925:7;27922:1;27919:14;27911:229;;;28014:19;;;28001:33;27986:49;;28121:4;28106:20;;;;28074:1;28062:14;;;;27941:12;27911:229;;;27915:3;28168;28159:7;28156:16;28153:159;;;28292:1;28288:6;28282:3;28276;28273:1;28269:11;28265:21;28261:34;28257:39;28244:9;28239:3;28235:19;28222:33;28218:79;28210:6;28203:95;28153:159;;;28355:1;28349:3;28346:1;28342:11;28338:19;28332:4;28325:33;27725:895;;27420:1206;;;:::o;28631:1075::-;28935:2;28947:21;;;28920:18;;29003:22;;;28887:4;29082:6;29056:2;29041:18;;28887:4;29116:304;29130:6;29127:1;29124:13;29116:304;;;29205:6;29192:20;29225:31;29250:5;29225:31;:::i;:::-;-1:-1:-1;;;;;29281:31:81;29269:44;;29336:4;29395:15;;;;29360:12;;;;29309:1;29145:9;29116:304;;;-1:-1:-1;29458:19:81;;;29451:4;29436:20;;29429:49;29487:19;;;-1:-1:-1;;;;;29518:31:81;;29515:51;;;29562:1;29559;29552:12;29515:51;29596:6;29593:1;29589:14;29575:28;;29649:6;29641;29634:4;29629:3;29625:14;29612:44;29677:16;29695:4;29673:27;;28631:1075;-1:-1:-1;;;;;;28631:1075:81:o;31239:1352::-;31365:3;31359:10;-1:-1:-1;;;;;31384:6:81;31381:30;31378:56;;;31414:18;;:::i;:::-;31443:97;31533:6;31493:38;31525:4;31519:11;31493:38;:::i;:::-;31487:4;31443:97;:::i;:::-;31595:4;;31659:2;31648:14;;31676:1;31671:663;;;;32378:1;32395:6;32392:89;;;-1:-1:-1;32447:19:81;;;32441:26;32392:89;32507:67;32567:6;32560:5;32507:67;:::i;:::-;32501:4;32494:81;;31641:944;;31671:663;26646:1;26639:14;;;26683:4;26670:18;;-1:-1:-1;;31707:20:81;;;31825:236;31839:7;31836:1;31833:14;31825:236;;;31928:19;;;31922:26;31907:42;;32020:27;;;;31988:1;31976:14;;;;31855:19;;31825:236;;;31829:3;32089:6;32080:7;32077:19;32074:201;;;32150:19;;;32144:26;-1:-1:-1;;32233:1:81;32229:14;;;32245:3;32225:24;32221:37;32217:42;32202:58;32187:74;;32074:201;-1:-1:-1;;;;;32321:1:81;32305:14;;;32301:22;32288:36;;-1:-1:-1;31239:1352:81:o;32953:168::-;33026:9;;;33057;;33074:15;;;33068:22;;33054:37;33044:71;;33095:18;;:::i;33258:217::-;33298:1;33324;33314:132;;33368:10;33363:3;33359:20;33356:1;33349:31;33403:4;33400:1;33393:15;33431:4;33428:1;33421:15;33314:132;-1:-1:-1;33460:9:81;;33258:217::o;34189:197::-;34227:3;34255:6;34296:2;34289:5;34285:14;34323:2;34314:7;34311:15;34308:41;;34329:18;;:::i;:::-;34378:1;34365:15;;34189:197;-1:-1:-1;;;34189:197:81:o;34391:407::-;34593:2;34575:21;;;34632:2;34612:18;;;34605:30;34671:34;34666:2;34651:18;;34644:62;-1:-1:-1;;;34737:2:81;34722:18;;34715:41;34788:3;34773:19;;34391:407::o;35157:414::-;35359:2;35341:21;;;35398:2;35378:18;;;35371:30;35437:34;35432:2;35417:18;;35410:62;-1:-1:-1;;;35503:2:81;35488:18;;35481:48;35561:3;35546:19;;35157:414::o;35576:191::-;35644:4;-1:-1:-1;;;;;35669:6:81;35666:30;35663:56;;;35699:18;;:::i;:::-;-1:-1:-1;35744:1:81;35740:14;35756:4;35736:25;;35576:191::o;35772:667::-;35837:5;35890:3;35883:4;35875:6;35871:17;35867:27;35857:55;;35908:1;35905;35898:12;35857:55;35937:6;35931:13;35963:4;35987:68;36003:51;36051:2;36003:51;:::i;35987:68::-;36089:15;;;36175:1;36171:10;;;;36159:23;;36155:32;;;36120:12;;;;36199:15;;;36196:35;;;36227:1;36224;36217:12;36196:35;36263:2;36255:6;36251:15;36275:135;36291:6;36286:3;36283:15;36275:135;;;36357:10;;36345:23;;36388:12;;;;36308;;36275:135;;;-1:-1:-1;36428:5:81;35772:667;-1:-1:-1;;;;;;35772:667:81:o;36444:1225::-;36581:6;36589;36642:2;36630:9;36621:7;36617:23;36613:32;36610:52;;;36658:1;36655;36648:12;36610:52;36691:9;36685:16;-1:-1:-1;;;;;36761:2:81;36753:6;36750:14;36747:34;;;36777:1;36774;36767:12;36747:34;36815:6;36804:9;36800:22;36790:32;;36860:7;36853:4;36849:2;36845:13;36841:27;36831:55;;36882:1;36879;36872:12;36831:55;36911:2;36905:9;36933:4;36957:68;36973:51;37021:2;36973:51;:::i;36957:68::-;37059:15;;;37141:1;37137:10;;;;37129:19;;37125:28;;;37090:12;;;;37165:19;;;37162:39;;;37197:1;37194;37187:12;37162:39;37221:11;;;;37241:210;37257:6;37252:3;37249:15;37241:210;;;37330:3;37324:10;37347:31;37372:5;37347:31;:::i;:::-;37391:18;;37274:12;;;;37429;;;;37241:210;;;37506:18;;;37500:25;37470:5;;-1:-1:-1;37500:25:81;;-1:-1:-1;;;37537:16:81;;;37534:36;;;37566:1;37563;37556:12;37534:36;;37589:74;37655:7;37644:8;37633:9;37629:24;37589:74;:::i;37674:722::-;37724:3;37765:5;37759:12;37794:36;37820:9;37794:36;:::i;:::-;37849:1;37866:18;;;37893:133;;;;38040:1;38035:355;;;;37859:531;;37893:133;-1:-1:-1;;37926:24:81;;37914:37;;37999:14;;37992:22;37980:35;;37971:45;;;-1:-1:-1;37893:133:81;;38035:355;38066:5;38063:1;38056:16;38095:4;38140:2;38137:1;38127:16;38165:1;38179:165;38193:6;38190:1;38187:13;38179:165;;;38271:14;;38258:11;;;38251:35;38314:16;;;;38208:10;;38179:165;;;38183:3;;;38373:6;38368:3;38364:16;38357:23;;37859:531;;;;;37674:722;;;;:::o;38401:277::-;38574:3;38599:73;38633:38;38667:3;38659:6;38633:38;:::i;:::-;38625:6;38599:73;:::i;38683:649::-;38763:6;38816:2;38804:9;38795:7;38791:23;38787:32;38784:52;;;38832:1;38829;38822:12;38784:52;38865:9;38859:16;-1:-1:-1;;;;;38890:6:81;38887:30;38884:50;;;38930:1;38927;38920:12;38884:50;38953:22;;39006:4;38998:13;;38994:27;-1:-1:-1;38984:55:81;;39035:1;39032;39025:12;38984:55;39064:2;39058:9;39089:49;39105:32;39134:2;39105:32;:::i;39089:49::-;39161:2;39154:5;39147:17;39201:7;39196:2;39191;39187;39183:11;39179:20;39176:33;39173:53;;;39222:1;39219;39212:12;39173:53;39235:67;39299:2;39294;39287:5;39283:14;39278:2;39274;39270:11;39235:67;:::i;39337:389::-;39513:3;39541:38;39575:3;39567:6;39541:38;:::i;:::-;39608:6;39602:13;39624:65;39682:6;39678:2;39671:4;39663:6;39659:17;39624:65;:::i;:::-;39705:15;;39337:389;-1:-1:-1;;;;39337:389:81:o;41426:128::-;41493:9;;;41514:11;;;41511:37;;;41528:18;;:::i;41559:127::-;41620:10;41615:3;41611:20;41608:1;41601:31;41651:4;41648:1;41641:15;41675:4;41672:1;41665:15;42026:489;-1:-1:-1;;;;;42295:15:81;;;42277:34;;42347:15;;42342:2;42327:18;;42320:43;42394:2;42379:18;;42372:34;;;42442:3;42437:2;42422:18;;42415:31;;;42220:4;;42463:46;;42489:19;;42481:6;42463:46;:::i;:::-;42455:54;42026:489;-1:-1:-1;;;;;;42026:489:81:o;42520:249::-;42589:6;42642:2;42630:9;42621:7;42617:23;42613:32;42610:52;;;42658:1;42655;42648:12;42610:52;42690:9;42684:16;42709:30;42733:5;42709:30;:::i;43699:456::-;-1:-1:-1;;;;;43986:15:81;;;43968:34;;44038:15;;;44033:2;44018:18;;44011:43;44090:15;;44085:2;44070:18;;44063:43;44137:2;44122:18;;44115:34;;;;43917:3;43902:19;;43699:456::o;44160:245::-;44227:6;44280:2;44268:9;44259:7;44255:23;44251:32;44248:52;;;44296:1;44293;44286:12;44248:52;44328:9;44322:16;44347:28;44369:5;44347:28;:::i;44410:350::-;44612:2;44594:21;;;44651:2;44631:18;;;44624:30;-1:-1:-1;;;44685:2:81;44670:18;;44663:56;44751:2;44736:18;;44410:350::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/ERC721CreatorCore.sol\";\nimport \"./token/ERC721/ERC721Upgradeable.sol\";\n\n/**\n * @dev ERC721Creator implementation (using transparent upgradeable proxy)\n */\ncontract ERC721CreatorUpgradeable is AdminControlUpgradeable, ERC721Upgradeable, ERC721CreatorCore {\n    using EnumerableSet for EnumerableSet.AddressSet;\n\n    /**\n     * Initializer\n     */\n    function initialize(string memory _name, string memory _symbol) public initializer {\n        __ERC721_init(_name, _symbol);\n        __Ownable_init();\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721Core, ERC721CreatorCore, AdminControlUpgradeable) returns (bool) {\n        return ERC721CreatorCore.supportsInterface(interfaceId) || ERC721Core.supportsInterface(interfaceId) || AdminControlUpgradeable.supportsInterface(interfaceId);\n    }\n\n    function _beforeTokenTransfer(address from, address to, uint256 tokenId, uint96 data) internal virtual override {\n        _approveTransfer(from, to, tokenId, uint16(data));\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 {IERC721CreatorCore-mintBase}.\n     */\n    function mintBase(address to) public virtual override nonReentrant adminRequired returns(uint256) {\n        return _mintBase(to, \"\", 0);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintBase}.\n     */\n    function mintBase(address to, string calldata uri) public virtual override nonReentrant adminRequired returns(uint256) {\n        return _mintBase(to, uri, 0);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintBaseBatch}.\n     */\n    function mintBaseBatch(address to, uint16 count) public virtual override nonReentrant adminRequired returns(uint256[] memory tokenIds) {\n        tokenIds = new uint256[](count);\n        uint256 firstTokenId = _tokenCount+1;\n        _tokenCount += count;\n\n        for (uint i; i < count;) {\n            tokenIds[i] = _mintBase(to, \"\", firstTokenId+i);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintBaseBatch}.\n     */\n    function mintBaseBatch(address to, string[] calldata uris) public virtual override nonReentrant adminRequired returns(uint256[] memory tokenIds) {\n        tokenIds = new uint256[](uris.length);\n        uint256 firstTokenId = _tokenCount+1;\n        _tokenCount += uris.length;\n\n        for (uint i; i < uris.length;) {\n            tokenIds[i] = _mintBase(to, uris[i], firstTokenId+i);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev Mint token with no extension\n     */\n    function _mintBase(address to, string memory uri, uint256 tokenId) internal virtual returns(uint256) {\n        if (tokenId == 0) {\n            ++_tokenCount;\n            tokenId = _tokenCount;\n        }\n\n        // Call pre mint\n        _preMintBase(to, tokenId);\n\n        _safeMint(to, tokenId, 0);\n\n        if (bytes(uri).length > 0) {\n            _tokenURIs[tokenId] = uri;\n        }\n\n        return tokenId;\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtension}.\n     */\n    function mintExtension(address to) public virtual override nonReentrant returns(uint256) {\n        requireExtension();\n        return _mintExtension(to, \"\", 0, 0);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtension}.\n     */\n    function mintExtension(address to, string calldata uri) public virtual override nonReentrant returns(uint256) {\n        requireExtension();\n        return _mintExtension(to, uri, 0, 0);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtension}.\n     */\n    function mintExtension(address to, uint80 data) public virtual override nonReentrant returns(uint256) {\n        requireExtension();\n        return _mintExtension(to, \"\", data, 0);\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtensionBatch}.\n     */\n    function mintExtensionBatch(address to, uint16 count) public virtual override nonReentrant returns(uint256[] memory tokenIds) {\n        requireExtension();\n        tokenIds = new uint256[](count);\n        uint256 firstTokenId = _tokenCount+1;\n        _tokenCount += count;\n\n        for (uint i; i < count;) {\n            tokenIds[i] = _mintExtension(to, \"\", 0, firstTokenId+i);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtensionBatch}.\n     */\n    function mintExtensionBatch(address to, string[] calldata uris) public virtual override nonReentrant returns(uint256[] memory tokenIds) {\n        requireExtension();\n        tokenIds = new uint256[](uris.length);\n        uint256 firstTokenId = _tokenCount+1;\n        _tokenCount += uris.length;\n\n        for (uint i; i < uris.length;) {\n            tokenIds[i] = _mintExtension(to, uris[i], 0, firstTokenId+i);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-mintExtensionBatch}.\n     */\n    function mintExtensionBatch(address to, uint80[] calldata data) public virtual override nonReentrant returns(uint256[] memory tokenIds) {\n        requireExtension();\n        tokenIds = new uint256[](data.length);\n        uint256 firstTokenId = _tokenCount+1;\n        _tokenCount += data.length;\n\n        for (uint i; i < data.length;) {\n            tokenIds[i] = _mintExtension(to, \"\", data[i], firstTokenId+i);\n            unchecked { ++i; }\n        }\n    }\n    \n    /**\n     * @dev Mint token via extension\n     */\n    function _mintExtension(address to, string memory uri, uint80 data, uint256 tokenId) internal virtual returns(uint256) {\n        if (tokenId == 0) {\n            ++_tokenCount;\n            tokenId = _tokenCount;\n        }\n\n        _checkMintPermissions(to, tokenId);\n        // Call pre mint\n        _preMintExtension(to, tokenId);\n\n        _safeMint(to, tokenId, data << 16 | _extensionToIndex[msg.sender]);\n\n        if (bytes(uri).length > 0) {\n            _tokenURIs[tokenId] = uri;\n        }\n\n        return tokenId;\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-tokenExtension}.\n     */\n    function tokenExtension(uint256 tokenId) public view virtual override returns (address extension) {\n        require(_exists(tokenId), \"Nonexistent token\");\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 {IERC721CreatorCore-burn}.\n     */\n    function burn(uint256 tokenId) public virtual override nonReentrant {\n        require(_isApprovedOrOwner(msg.sender, tokenId), \"Caller is not owner or approved\");\n        address owner = ownerOf(tokenId);\n        address extension = _tokenExtension(tokenId);\n        _burn(tokenId);\n        _postBurn(owner, tokenId, extension);\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        require(_exists(tokenId), \"Nonexistent token\");\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        require(_exists(tokenId), \"Nonexistent token\");\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        require(_exists(tokenId), \"Nonexistent token\");\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        require(_exists(tokenId), \"Nonexistent token\");\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        require(_exists(tokenId), \"Nonexistent token\");\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        require(_exists(tokenId), \"Nonexistent token\");\n        return _getRoyaltyInfo(tokenId, value);\n    } \n\n    /**\n     * @dev See {IERC721Metadata-tokenURI}.\n     */\n    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n        require(_exists(tokenId), \"Nonexistent token\");\n        return _tokenURI(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setApproveTransfer}.\n     */\n    function setApproveTransfer(address extension) external override adminRequired {\n        _setApproveTransferBase(extension);\n    }\n\n    function _tokenExtension(uint256 tokenId) internal view override returns(address) {\n        uint16 extensionIndex = uint16(_tokenData[tokenId].data);\n        if (extensionIndex == 0) return address(0);\n        return _indexToExtension[extensionIndex];\n    }\n\n    /**\n     * @dev See {IERC721CreatorCore-tokenData}.\n     */\n    function tokenData(uint256 tokenId) external view returns (uint80) {\n        return uint80(_tokenData[tokenId].data >> 16);\n    }\n}",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/ERC721CreatorUpgradeable.sol",
  "ast": {
    "absolutePath": "project:/contracts/ERC721CreatorUpgradeable.sol",
    "exportedSymbols": {
      "Address": [
        1911
      ],
      "AddressUpgradeable": [
        1002
      ],
      "AdminControlUpgradeable": [
        371
      ],
      "ContextUpgradeable": [
        1044
      ],
      "CreatorCore": [
        13473
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "ERC721Core": [
        20641
      ],
      "ERC721CreatorCore": [
        14289
      ],
      "ERC721CreatorUpgradeable": [
        12368
      ],
      "ERC721Upgradeable": [
        21034
      ],
      "EnumerableSet": [
        3816
      ],
      "IAdminControl": [
        417
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionRoyalties": [
        16574
      ],
      "ICreatorExtensionTokenURI": [
        16591
      ],
      "IERC165": [
        2338
      ],
      "IERC721": [
        1505
      ],
      "IERC721CreatorCore": [
        15407
      ],
      "IERC721CreatorExtensionApproveTransfer": [
        16483
      ],
      "IERC721CreatorExtensionBurnable": [
        16498
      ],
      "IERC721CreatorMintPermissions": [
        18497
      ],
      "IERC721Metadata": [
        1581
      ],
      "IERC721Receiver": [
        1523
      ],
      "Initializable": [
        718
      ],
      "Math": [
        3203
      ],
      "OwnableUpgradeable": [
        549
      ],
      "ReentrancyGuard": [
        1211
      ],
      "Strings": [
        2108
      ]
    },
    "id": 12369,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 11075,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:30"
      },
      {
        "absolutePath": "@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol",
        "file": "@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol",
        "id": 11076,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 12369,
        "sourceUnit": 372,
        "src": "85:86:30",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/core/ERC721CreatorCore.sol",
        "file": "./core/ERC721CreatorCore.sol",
        "id": 11077,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 12369,
        "sourceUnit": 14290,
        "src": "173:38:30",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/token/ERC721/ERC721Upgradeable.sol",
        "file": "./token/ERC721/ERC721Upgradeable.sol",
        "id": 11078,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 12369,
        "sourceUnit": 21035,
        "src": "212:46:30",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 11080,
              "name": "AdminControlUpgradeable",
              "nameLocations": [
                "380:23:30"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 371,
              "src": "380:23:30"
            },
            "id": 11081,
            "nodeType": "InheritanceSpecifier",
            "src": "380:23:30"
          },
          {
            "baseName": {
              "id": 11082,
              "name": "ERC721Upgradeable",
              "nameLocations": [
                "405:17:30"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 21034,
              "src": "405:17:30"
            },
            "id": 11083,
            "nodeType": "InheritanceSpecifier",
            "src": "405:17:30"
          },
          {
            "baseName": {
              "id": 11084,
              "name": "ERC721CreatorCore",
              "nameLocations": [
                "424:17:30"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 14289,
              "src": "424:17:30"
            },
            "id": 11085,
            "nodeType": "InheritanceSpecifier",
            "src": "424:17:30"
          }
        ],
        "canonicalName": "ERC721CreatorUpgradeable",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 11079,
          "nodeType": "StructuredDocumentation",
          "src": "260:82:30",
          "text": " @dev ERC721Creator implementation (using transparent upgradeable proxy)"
        },
        "fullyImplemented": true,
        "id": 12368,
        "linearizedBaseContracts": [
          12368,
          14289,
          15407,
          13473,
          21034,
          20641,
          1581,
          1505,
          371,
          2132,
          15197,
          417,
          2338,
          1211,
          549,
          1044,
          718
        ],
        "name": "ERC721CreatorUpgradeable",
        "nameLocation": "352:24:30",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 11089,
            "libraryName": {
              "id": 11086,
              "name": "EnumerableSet",
              "nameLocations": [
                "454:13:30"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 3816,
              "src": "454:13:30"
            },
            "nodeType": "UsingForDirective",
            "src": "448:49:30",
            "typeName": {
              "id": 11088,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 11087,
                "name": "EnumerableSet.AddressSet",
                "nameLocations": [
                  "472:13:30",
                  "486:10:30"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 3529,
                "src": "472:24:30"
              },
              "referencedDeclaration": 3529,
              "src": "472:24:30",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_AddressSet_$3529_storage_ptr",
                "typeString": "struct EnumerableSet.AddressSet"
              }
            }
          },
          {
            "body": {
              "id": 11107,
              "nodeType": "Block",
              "src": "621:72:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11100,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11092,
                        "src": "645:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "id": 11101,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11094,
                        "src": "652:7:30",
                        "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": 11099,
                      "name": "__ERC721_init",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 21015,
                      "src": "631:13:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 11102,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "631:29:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11103,
                  "nodeType": "ExpressionStatement",
                  "src": "631:29:30"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11104,
                      "name": "__Ownable_init",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 444,
                      "src": "670:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 11105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "670:16:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11106,
                  "nodeType": "ExpressionStatement",
                  "src": "670:16:30"
                }
              ]
            },
            "documentation": {
              "id": 11090,
              "nodeType": "StructuredDocumentation",
              "src": "503:30:30",
              "text": " Initializer"
            },
            "functionSelector": "4cd88b76",
            "id": 11108,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11097,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11096,
                  "name": "initializer",
                  "nameLocations": [
                    "609:11:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 620,
                  "src": "609:11:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "609:11:30"
              }
            ],
            "name": "initialize",
            "nameLocation": "547:10:30",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11095,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11092,
                  "mutability": "mutable",
                  "name": "_name",
                  "nameLocation": "572:5:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11108,
                  "src": "558:19:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11091,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "558:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11094,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "593:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11108,
                  "src": "579:21:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11093,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "579:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "557:44:30"
            },
            "returnParameters": {
              "id": 11098,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "621:0:30"
            },
            "scope": 12368,
            "src": "538:155:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              228,
              13923,
              19882
            ],
            "body": {
              "id": 11135,
              "nodeType": "Block",
              "src": "907:175:30",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 11133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 11128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "arguments": [
                          {
                            "id": 11122,
                            "name": "interfaceId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11111,
                            "src": "960:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 11120,
                            "name": "ERC721CreatorCore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14289,
                            "src": "924:17:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC721CreatorCore_$14289_$",
                              "typeString": "type(contract ERC721CreatorCore)"
                            }
                          },
                          "id": 11121,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "942:17:30",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13923,
                          "src": "924:35:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (bytes4) view returns (bool)"
                          }
                        },
                        "id": 11123,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "924:48:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "arguments": [
                          {
                            "id": 11126,
                            "name": "interfaceId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11111,
                            "src": "1005:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 11124,
                            "name": "ERC721Core",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "976:10:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC721Core_$20641_$",
                              "typeString": "type(contract ERC721Core)"
                            }
                          },
                          "id": 11125,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "987:17:30",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19882,
                          "src": "976:28:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (bytes4) view returns (bool)"
                          }
                        },
                        "id": 11127,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "976:41:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "924:93:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 11131,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 11111,
                          "src": "1063:11:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 11129,
                          "name": "AdminControlUpgradeable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 371,
                          "src": "1021:23:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_AdminControlUpgradeable_$371_$",
                            "typeString": "type(contract AdminControlUpgradeable)"
                          }
                        },
                        "id": 11130,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1045:17:30",
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 228,
                        "src": "1021:41:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 11132,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1021:54:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "924:151:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 11119,
                  "id": 11134,
                  "nodeType": "Return",
                  "src": "917:158:30"
                }
              ]
            },
            "documentation": {
              "id": 11109,
              "nodeType": "StructuredDocumentation",
              "src": "699:56:30",
              "text": " @dev See {IERC165-supportsInterface}."
            },
            "functionSelector": "01ffc9a7",
            "id": 11136,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nameLocation": "769:17:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11116,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 11113,
                  "name": "ERC721Core",
                  "nameLocations": [
                    "836:10:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 20641,
                  "src": "836:10:30"
                },
                {
                  "id": 11114,
                  "name": "ERC721CreatorCore",
                  "nameLocations": [
                    "848:17:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 14289,
                  "src": "848:17:30"
                },
                {
                  "id": 11115,
                  "name": "AdminControlUpgradeable",
                  "nameLocations": [
                    "867:23:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 371,
                  "src": "867:23:30"
                }
              ],
              "src": "827:64:30"
            },
            "parameters": {
              "id": 11112,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11111,
                  "mutability": "mutable",
                  "name": "interfaceId",
                  "nameLocation": "794:11:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11136,
                  "src": "787:18:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 11110,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "787:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "786:20:30"
            },
            "returnParameters": {
              "id": 11119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11118,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11136,
                  "src": "901:4:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 11117,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "901:4:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "900:6:30"
            },
            "scope": 12368,
            "src": "760:322:30",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              20627
            ],
            "body": {
              "id": 11158,
              "nodeType": "Block",
              "src": "1200:66:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11149,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11138,
                        "src": "1227:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11150,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11140,
                        "src": "1233:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11151,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11142,
                        "src": "1237:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 11154,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11144,
                            "src": "1253:4:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 11153,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1246:6:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint16_$",
                            "typeString": "type(uint16)"
                          },
                          "typeName": {
                            "id": 11152,
                            "name": "uint16",
                            "nodeType": "ElementaryTypeName",
                            "src": "1246:6:30",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 11155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1246:12:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      ],
                      "id": 11148,
                      "name": "_approveTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        14142,
                        14171,
                        14239
                      ],
                      "referencedDeclaration": 14171,
                      "src": "1210:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint16_$returns$__$",
                        "typeString": "function (address,address,uint256,uint16)"
                      }
                    },
                    "id": 11156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1210:49:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11157,
                  "nodeType": "ExpressionStatement",
                  "src": "1210:49:30"
                }
              ]
            },
            "id": 11159,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeTokenTransfer",
            "nameLocation": "1097:20:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11146,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1191:8:30"
            },
            "parameters": {
              "id": 11145,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11138,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1126:4:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11159,
                  "src": "1118:12:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11137,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1118:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11140,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1140:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11159,
                  "src": "1132:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11139,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1132:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11142,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "1152:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11159,
                  "src": "1144:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11141,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1144:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11144,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "1168:4:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11159,
                  "src": "1161:11:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint96",
                    "typeString": "uint96"
                  },
                  "typeName": {
                    "id": 11143,
                    "name": "uint96",
                    "nodeType": "ElementaryTypeName",
                    "src": "1161:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint96",
                      "typeString": "uint96"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1117:56:30"
            },
            "returnParameters": {
              "id": 11147,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1200:0:30"
            },
            "scope": 12368,
            "src": "1088:178:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              14988
            ],
            "body": {
              "id": 11180,
              "nodeType": "Block",
              "src": "1441:102:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11171,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11162,
                        "src": "1471:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 11170,
                      "name": "requireNonBlacklist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12566,
                      "src": "1451:19:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 11172,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1451:30:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11173,
                  "nodeType": "ExpressionStatement",
                  "src": "1451:30:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11175,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11162,
                        "src": "1510:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11176,
                        "name": "baseURI",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11164,
                        "src": "1521:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 11177,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1530:5:30",
                        "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": 11174,
                      "name": "_registerExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        14288
                      ],
                      "referencedDeclaration": 14288,
                      "src": "1491:18:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,string calldata,bool)"
                      }
                    },
                    "id": 11178,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1491:45:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11179,
                  "nodeType": "ExpressionStatement",
                  "src": "1491:45:30"
                }
              ]
            },
            "documentation": {
              "id": 11160,
              "nodeType": "StructuredDocumentation",
              "src": "1272:61:30",
              "text": " @dev See {ICreatorCore-registerExtension}."
            },
            "functionSelector": "3071a0f9",
            "id": 11181,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11168,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11167,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1427:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "1427:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "1427:13:30"
              }
            ],
            "name": "registerExtension",
            "nameLocation": "1347:17:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11166,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1418:8:30"
            },
            "parameters": {
              "id": 11165,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11162,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1373:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11181,
                  "src": "1365:17:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11161,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1365:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11164,
                  "mutability": "mutable",
                  "name": "baseURI",
                  "nameLocation": "1400:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11181,
                  "src": "1384:23:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11163,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1384:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1364:44:30"
            },
            "returnParameters": {
              "id": 11169,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1441:0:30"
            },
            "scope": 12368,
            "src": "1338:205:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              14998
            ],
            "body": {
              "id": 11204,
              "nodeType": "Block",
              "src": "1741:113:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11195,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11184,
                        "src": "1771:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 11194,
                      "name": "requireNonBlacklist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12566,
                      "src": "1751:19:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 11196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1751:30:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11197,
                  "nodeType": "ExpressionStatement",
                  "src": "1751:30:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11199,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11184,
                        "src": "1810:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11200,
                        "name": "baseURI",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11186,
                        "src": "1821:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 11201,
                        "name": "baseURIIdentical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11188,
                        "src": "1830:16:30",
                        "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": 11198,
                      "name": "_registerExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        14288
                      ],
                      "referencedDeclaration": 14288,
                      "src": "1791:18:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,string calldata,bool)"
                      }
                    },
                    "id": 11202,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1791:56:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11203,
                  "nodeType": "ExpressionStatement",
                  "src": "1791:56:30"
                }
              ]
            },
            "documentation": {
              "id": 11182,
              "nodeType": "StructuredDocumentation",
              "src": "1549:61:30",
              "text": " @dev See {ICreatorCore-registerExtension}."
            },
            "functionSelector": "3f0f37f6",
            "id": 11205,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11192,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11191,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1727:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "1727:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "1727:13:30"
              }
            ],
            "name": "registerExtension",
            "nameLocation": "1624:17:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11190,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1718:8:30"
            },
            "parameters": {
              "id": 11189,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11184,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1650:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11205,
                  "src": "1642:17:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11183,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1642:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11186,
                  "mutability": "mutable",
                  "name": "baseURI",
                  "nameLocation": "1677:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11205,
                  "src": "1661:23:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11185,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1661:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11188,
                  "mutability": "mutable",
                  "name": "baseURIIdentical",
                  "nameLocation": "1691:16:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11205,
                  "src": "1686:21:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 11187,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1686:4:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1641:67:30"
            },
            "returnParameters": {
              "id": 11193,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1741:0:30"
            },
            "scope": 12368,
            "src": "1615:239:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15004
            ],
            "body": {
              "id": 11218,
              "nodeType": "Block",
              "src": "2009:48:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11215,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11208,
                        "src": "2040:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 11214,
                      "name": "_unregisterExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12708,
                      "src": "2019:20:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 11216,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2019:31:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11217,
                  "nodeType": "ExpressionStatement",
                  "src": "2019:31:30"
                }
              ]
            },
            "documentation": {
              "id": 11206,
              "nodeType": "StructuredDocumentation",
              "src": "1861:63:30",
              "text": " @dev See {ICreatorCore-unregisterExtension}."
            },
            "functionSelector": "ce8aee9d",
            "id": 11219,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11212,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11211,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1995:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "1995:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "1995:13:30"
              }
            ],
            "name": "unregisterExtension",
            "nameLocation": "1938:19:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11210,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1986:8:30"
            },
            "parameters": {
              "id": 11209,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11208,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1966:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11219,
                  "src": "1958:17:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11207,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1958:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1957:19:30"
            },
            "returnParameters": {
              "id": 11213,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2009:0:30"
            },
            "scope": 12368,
            "src": "1929:128:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15010
            ],
            "body": {
              "id": 11232,
              "nodeType": "Block",
              "src": "2209:47:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11229,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11222,
                        "src": "2239:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 11228,
                      "name": "_blacklistExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12769,
                      "src": "2219:19:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 11230,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2219:30:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11231,
                  "nodeType": "ExpressionStatement",
                  "src": "2219:30:30"
                }
              ]
            },
            "documentation": {
              "id": 11220,
              "nodeType": "StructuredDocumentation",
              "src": "2063:62:30",
              "text": " @dev See {ICreatorCore-blacklistExtension}."
            },
            "functionSelector": "02e7afb7",
            "id": 11233,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11226,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11225,
                  "name": "adminRequired",
                  "nameLocations": [
                    "2195:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "2195:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "2195:13:30"
              }
            ],
            "name": "blacklistExtension",
            "nameLocation": "2139:18:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11224,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2186:8:30"
            },
            "parameters": {
              "id": 11223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11222,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "2166:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11233,
                  "src": "2158:17:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11221,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2158:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2157:19:30"
            },
            "returnParameters": {
              "id": 11227,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2209:0:30"
            },
            "scope": 12368,
            "src": "2130:126:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15016
            ],
            "body": {
              "id": 11248,
              "nodeType": "Block",
              "src": "2408:82:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11240,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2418:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11241,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2418:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11242,
                  "nodeType": "ExpressionStatement",
                  "src": "2418:18:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11244,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11236,
                        "src": "2472:3:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 11245,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2477:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 11243,
                      "name": "_setBaseTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12792,
                      "src": "2446:25:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string calldata,bool)"
                      }
                    },
                    "id": 11246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2446:37:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11247,
                  "nodeType": "ExpressionStatement",
                  "src": "2446:37:30"
                }
              ]
            },
            "documentation": {
              "id": 11234,
              "nodeType": "StructuredDocumentation",
              "src": "2262:68:30",
              "text": " @dev See {ICreatorCore-setBaseTokenURIExtension}."
            },
            "functionSelector": "3e6134b8",
            "id": 11249,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBaseTokenURIExtension",
            "nameLocation": "2344:24:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11238,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2399:8:30"
            },
            "parameters": {
              "id": 11237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11236,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "2385:3:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11249,
                  "src": "2369:19:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11235,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2369:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2368:21:30"
            },
            "returnParameters": {
              "id": 11239,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2408:0:30"
            },
            "scope": 12368,
            "src": "2335:155:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15024
            ],
            "body": {
              "id": 11266,
              "nodeType": "Block",
              "src": "2658:86:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11258,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2668:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11259,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2668:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11260,
                  "nodeType": "ExpressionStatement",
                  "src": "2668:18:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11262,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11252,
                        "src": "2722:3:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 11263,
                        "name": "identical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11254,
                        "src": "2727:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 11261,
                      "name": "_setBaseTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12792,
                      "src": "2696:25:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string calldata,bool)"
                      }
                    },
                    "id": 11264,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2696:41:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11265,
                  "nodeType": "ExpressionStatement",
                  "src": "2696:41:30"
                }
              ]
            },
            "documentation": {
              "id": 11250,
              "nodeType": "StructuredDocumentation",
              "src": "2496:68:30",
              "text": " @dev See {ICreatorCore-setBaseTokenURIExtension}."
            },
            "functionSelector": "82dcc0c8",
            "id": 11267,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBaseTokenURIExtension",
            "nameLocation": "2578:24:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11256,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2649:8:30"
            },
            "parameters": {
              "id": 11255,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11252,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "2619:3:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11267,
                  "src": "2603:19:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11251,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2603:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11254,
                  "mutability": "mutable",
                  "name": "identical",
                  "nameLocation": "2629:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11267,
                  "src": "2624:14:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 11253,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2624:4:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2602:37:30"
            },
            "returnParameters": {
              "id": 11257,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2658:0:30"
            },
            "scope": 12368,
            "src": "2569:175:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15030
            ],
            "body": {
              "id": 11281,
              "nodeType": "Block",
              "src": "2903:80:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11274,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2913:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11275,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2913:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11276,
                  "nodeType": "ExpressionStatement",
                  "src": "2913:18:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11278,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11270,
                        "src": "2969:6:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 11277,
                      "name": "_setTokenURIPrefixExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12806,
                      "src": "2941:27:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 11279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2941:35:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11280,
                  "nodeType": "ExpressionStatement",
                  "src": "2941:35:30"
                }
              ]
            },
            "documentation": {
              "id": 11268,
              "nodeType": "StructuredDocumentation",
              "src": "2750:70:30",
              "text": " @dev See {ICreatorCore-setTokenURIPrefixExtension}."
            },
            "functionSelector": "66d1e9d0",
            "id": 11282,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIPrefixExtension",
            "nameLocation": "2834:26:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11272,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2894:8:30"
            },
            "parameters": {
              "id": 11271,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11270,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "2877:6:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11282,
                  "src": "2861:22:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11269,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2861:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2860:24:30"
            },
            "returnParameters": {
              "id": 11273,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2903:0:30"
            },
            "scope": 12368,
            "src": "2825:158:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15038
            ],
            "body": {
              "id": 11299,
              "nodeType": "Block",
              "src": "3144:80:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11291,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3154:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3154:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11293,
                  "nodeType": "ExpressionStatement",
                  "src": "3154:18:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11295,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11285,
                        "src": "3204:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 11296,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11287,
                        "src": "3213:3:30",
                        "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": 11294,
                      "name": "_setTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12831,
                      "src": "3182:21:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,string calldata)"
                      }
                    },
                    "id": 11297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3182:35:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11298,
                  "nodeType": "ExpressionStatement",
                  "src": "3182:35:30"
                }
              ]
            },
            "documentation": {
              "id": 11283,
              "nodeType": "StructuredDocumentation",
              "src": "2989:64:30",
              "text": " @dev See {ICreatorCore-setTokenURIExtension}."
            },
            "functionSelector": "e92a89f6",
            "id": 11300,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIExtension",
            "nameLocation": "3067:20:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11289,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3135:8:30"
            },
            "parameters": {
              "id": 11288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11285,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "3096:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11300,
                  "src": "3088:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11284,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3088:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11287,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "3121:3:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11300,
                  "src": "3105:19:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11286,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3105:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3087:38:30"
            },
            "returnParameters": {
              "id": 11290,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3144:0:30"
            },
            "scope": 12368,
            "src": "3058:166:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15048
            ],
            "body": {
              "id": 11345,
              "nodeType": "Block",
              "src": "3400:244:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11311,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3410:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11312,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3410:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11313,
                  "nodeType": "ExpressionStatement",
                  "src": "3410:18:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 11319,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 11315,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11304,
                            "src": "3446:8:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 11316,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3455:6:30",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3446:15:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 11317,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11307,
                            "src": "3465:4:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 11318,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3470:6:30",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3465:11:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3446:30:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 11320,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3478:15:30",
                        "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": 11314,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "3438:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 11321,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3438:56:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11322,
                  "nodeType": "ExpressionStatement",
                  "src": "3438:56:30"
                },
                {
                  "body": {
                    "id": 11343,
                    "nodeType": "Block",
                    "src": "3539:99:30",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 11331,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11304,
                                "src": "3575:8:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 11333,
                              "indexExpression": {
                                "id": 11332,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11324,
                                "src": "3584:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3575:11:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 11334,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11307,
                                "src": "3588:4:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 11336,
                              "indexExpression": {
                                "id": 11335,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11324,
                                "src": "3593:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3588:7:30",
                              "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": 11330,
                            "name": "_setTokenURIExtension",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12831,
                            "src": "3553:21:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                              "typeString": "function (uint256,string calldata)"
                            }
                          },
                          "id": 11337,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3553:43:30",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 11338,
                        "nodeType": "ExpressionStatement",
                        "src": "3553:43:30"
                      },
                      {
                        "id": 11342,
                        "nodeType": "UncheckedBlock",
                        "src": "3610:18:30",
                        "statements": [
                          {
                            "expression": {
                              "id": 11340,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "3622:3:30",
                              "subExpression": {
                                "id": 11339,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11324,
                                "src": "3624:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 11341,
                            "nodeType": "ExpressionStatement",
                            "src": "3622:3:30"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11329,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11326,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11324,
                      "src": "3517:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 11327,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11304,
                        "src": "3521:8:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 11328,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3530:6:30",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "3521:15:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3517:19:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11344,
                  "initializationExpression": {
                    "assignments": [
                      11324
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 11324,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3514:1:30",
                        "nodeType": "VariableDeclaration",
                        "scope": 11344,
                        "src": "3509:6:30",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 11323,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "3509:4:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 11325,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3509:6:30"
                  },
                  "nodeType": "ForStatement",
                  "src": "3504:134:30"
                }
              ]
            },
            "documentation": {
              "id": 11301,
              "nodeType": "StructuredDocumentation",
              "src": "3230:64:30",
              "text": " @dev See {ICreatorCore-setTokenURIExtension}."
            },
            "functionSelector": "61e5bc6b",
            "id": 11346,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIExtension",
            "nameLocation": "3308:20:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11309,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3391:8:30"
            },
            "parameters": {
              "id": 11308,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11304,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "3348:8:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11346,
                  "src": "3329:27:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11302,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3329:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 11303,
                    "nodeType": "ArrayTypeName",
                    "src": "3329:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11307,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "3376:4:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11346,
                  "src": "3358:22:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11305,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "3358:6:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 11306,
                    "nodeType": "ArrayTypeName",
                    "src": "3358:8:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3328:53:30"
            },
            "returnParameters": {
              "id": 11310,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3400:0:30"
            },
            "scope": 12368,
            "src": "3299:345:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15054
            ],
            "body": {
              "id": 11359,
              "nodeType": "Block",
              "src": "3792:38:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11356,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11349,
                        "src": "3819:3:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 11355,
                      "name": "_setBaseTokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12847,
                      "src": "3802:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 11357,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3802:21:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11358,
                  "nodeType": "ExpressionStatement",
                  "src": "3802:21:30"
                }
              ]
            },
            "documentation": {
              "id": 11347,
              "nodeType": "StructuredDocumentation",
              "src": "3650:59:30",
              "text": " @dev See {ICreatorCore-setBaseTokenURI}."
            },
            "functionSelector": "30176e13",
            "id": 11360,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11353,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11352,
                  "name": "adminRequired",
                  "nameLocations": [
                    "3778:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "3778:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "3778:13:30"
              }
            ],
            "name": "setBaseTokenURI",
            "nameLocation": "3723:15:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11351,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3769:8:30"
            },
            "parameters": {
              "id": 11350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11349,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "3755:3:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11360,
                  "src": "3739:19:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11348,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3739:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3738:21:30"
            },
            "returnParameters": {
              "id": 11354,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3792:0:30"
            },
            "scope": 12368,
            "src": "3714:116:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15060
            ],
            "body": {
              "id": 11373,
              "nodeType": "Block",
              "src": "3985:43:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11370,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11363,
                        "src": "4014:6:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 11369,
                      "name": "_setTokenURIPrefix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12863,
                      "src": "3995:18:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 11371,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3995:26:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11372,
                  "nodeType": "ExpressionStatement",
                  "src": "3995:26:30"
                }
              ]
            },
            "documentation": {
              "id": 11361,
              "nodeType": "StructuredDocumentation",
              "src": "3836:61:30",
              "text": " @dev See {ICreatorCore-setTokenURIPrefix}."
            },
            "functionSelector": "99e0dd7c",
            "id": 11374,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11367,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11366,
                  "name": "adminRequired",
                  "nameLocations": [
                    "3971:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "3971:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "3971:13:30"
              }
            ],
            "name": "setTokenURIPrefix",
            "nameLocation": "3911:17:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11365,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3962:8:30"
            },
            "parameters": {
              "id": 11364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11363,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "3945:6:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11374,
                  "src": "3929:22:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11362,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3929:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3928:24:30"
            },
            "returnParameters": {
              "id": 11368,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3985:0:30"
            },
            "scope": 12368,
            "src": "3902:126:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15068
            ],
            "body": {
              "id": 11390,
              "nodeType": "Block",
              "src": "4185:43:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11386,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11377,
                        "src": "4208:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 11387,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11379,
                        "src": "4217:3:30",
                        "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": 11385,
                      "name": "_setTokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12898,
                      "src": "4195:12:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,string calldata)"
                      }
                    },
                    "id": 11388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4195:26:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11389,
                  "nodeType": "ExpressionStatement",
                  "src": "4195:26:30"
                }
              ]
            },
            "documentation": {
              "id": 11375,
              "nodeType": "StructuredDocumentation",
              "src": "4034:55:30",
              "text": " @dev See {ICreatorCore-setTokenURI}."
            },
            "functionSelector": "162094c4",
            "id": 11391,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11383,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11382,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4171:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4171:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "4171:13:30"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "4103:11:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11381,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4162:8:30"
            },
            "parameters": {
              "id": 11380,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11377,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "4123:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11391,
                  "src": "4115:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11376,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4115:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11379,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "4148:3:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11391,
                  "src": "4132:19:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11378,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4132:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4114:38:30"
            },
            "returnParameters": {
              "id": 11384,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4185:0:30"
            },
            "scope": 12368,
            "src": "4094:134:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15078
            ],
            "body": {
              "id": 11435,
              "nodeType": "Block",
              "src": "4400:207:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 11409,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 11405,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11395,
                            "src": "4418:8:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 11406,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4427:6:30",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4418:15:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 11407,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11398,
                            "src": "4437:4:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 11408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4442:6:30",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4437:11:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4418:30:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 11410,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4450:15:30",
                        "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": 11404,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "4410:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 11411,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4410:56:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11412,
                  "nodeType": "ExpressionStatement",
                  "src": "4410:56:30"
                },
                {
                  "body": {
                    "id": 11433,
                    "nodeType": "Block",
                    "src": "4511:90:30",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 11421,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11395,
                                "src": "4538:8:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 11423,
                              "indexExpression": {
                                "id": 11422,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11414,
                                "src": "4547:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4538:11:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 11424,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11398,
                                "src": "4551:4:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 11426,
                              "indexExpression": {
                                "id": 11425,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11414,
                                "src": "4556:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4551:7:30",
                              "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": 11420,
                            "name": "_setTokenURI",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12898,
                            "src": "4525:12:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                              "typeString": "function (uint256,string calldata)"
                            }
                          },
                          "id": 11427,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4525:34:30",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 11428,
                        "nodeType": "ExpressionStatement",
                        "src": "4525:34:30"
                      },
                      {
                        "id": 11432,
                        "nodeType": "UncheckedBlock",
                        "src": "4573:18:30",
                        "statements": [
                          {
                            "expression": {
                              "id": 11430,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "4585:3:30",
                              "subExpression": {
                                "id": 11429,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11414,
                                "src": "4587:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 11431,
                            "nodeType": "ExpressionStatement",
                            "src": "4585:3:30"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11419,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11416,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11414,
                      "src": "4489:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 11417,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11395,
                        "src": "4493:8:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 11418,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4502:6:30",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "4493:15:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4489:19:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11434,
                  "initializationExpression": {
                    "assignments": [
                      11414
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 11414,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "4486:1:30",
                        "nodeType": "VariableDeclaration",
                        "scope": 11434,
                        "src": "4481:6:30",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 11413,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "4481:4:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 11415,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4481:6:30"
                  },
                  "nodeType": "ForStatement",
                  "src": "4476:125:30"
                }
              ]
            },
            "documentation": {
              "id": 11392,
              "nodeType": "StructuredDocumentation",
              "src": "4234:55:30",
              "text": " @dev See {ICreatorCore-setTokenURI}."
            },
            "functionSelector": "aafb2d44",
            "id": 11436,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11402,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11401,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4386:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4386:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "4386:13:30"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "4303:11:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11400,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4377:8:30"
            },
            "parameters": {
              "id": 11399,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11395,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "4334:8:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11436,
                  "src": "4315:27:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11393,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4315:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 11394,
                    "nodeType": "ArrayTypeName",
                    "src": "4315:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11398,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "4362:4:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11436,
                  "src": "4344:22:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11396,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "4344:6:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 11397,
                    "nodeType": "ArrayTypeName",
                    "src": "4344:8:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4314:53:30"
            },
            "returnParameters": {
              "id": 11403,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4400:0:30"
            },
            "scope": 12368,
            "src": "4294:313:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15086
            ],
            "body": {
              "id": 11452,
              "nodeType": "Block",
              "src": "4780:60:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11448,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11439,
                        "src": "4810:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11449,
                        "name": "permissions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11441,
                        "src": "4821:11:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 11447,
                      "name": "_setMintPermissions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14010,
                      "src": "4790:19:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address)"
                      }
                    },
                    "id": 11450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4790:43:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11451,
                  "nodeType": "ExpressionStatement",
                  "src": "4790:43:30"
                }
              ]
            },
            "documentation": {
              "id": 11437,
              "nodeType": "StructuredDocumentation",
              "src": "4613:62:30",
              "text": " @dev See {ICreatorCore-setMintPermissions}."
            },
            "functionSelector": "f0cdc499",
            "id": 11453,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11445,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11444,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4766:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4766:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "4766:13:30"
              }
            ],
            "name": "setMintPermissions",
            "nameLocation": "4689:18:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11443,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4757:8:30"
            },
            "parameters": {
              "id": 11442,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11439,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "4716:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11453,
                  "src": "4708:17:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11438,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4708:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11441,
                  "mutability": "mutable",
                  "name": "permissions",
                  "nameLocation": "4735:11:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11453,
                  "src": "4727:19:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11440,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4727:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4707:40:30"
            },
            "returnParameters": {
              "id": 11446,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4780:0:30"
            },
            "scope": 12368,
            "src": "4680:160:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15296
            ],
            "body": {
              "id": 11472,
              "nodeType": "Block",
              "src": "5007:44:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11467,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11456,
                        "src": "5034:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "",
                        "id": 11468,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5038:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "hexValue": "30",
                        "id": 11469,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5042:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 11466,
                      "name": "_mintBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11672,
                      "src": "5024:9:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (address,string memory,uint256) returns (uint256)"
                      }
                    },
                    "id": 11470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5024:20:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 11465,
                  "id": 11471,
                  "nodeType": "Return",
                  "src": "5017:27:30"
                }
              ]
            },
            "documentation": {
              "id": 11454,
              "nodeType": "StructuredDocumentation",
              "src": "4846:58:30",
              "text": " @dev See {IERC721CreatorCore-mintBase}."
            },
            "functionSelector": "72ff03d3",
            "id": 11473,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11460,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11459,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "4963:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "4963:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "4963:12:30"
              },
              {
                "id": 11462,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11461,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4976:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4976:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "4976:13:30"
              }
            ],
            "name": "mintBase",
            "nameLocation": "4918:8:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11458,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4954:8:30"
            },
            "parameters": {
              "id": 11457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11456,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "4935:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11473,
                  "src": "4927:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11455,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4927:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4926:12:30"
            },
            "returnParameters": {
              "id": 11465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11464,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11473,
                  "src": "4998:7:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11463,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4998:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4997:9:30"
            },
            "scope": 12368,
            "src": "4909:142:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15306
            ],
            "body": {
              "id": 11494,
              "nodeType": "Block",
              "src": "5239:45:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11489,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11476,
                        "src": "5266:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11490,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11478,
                        "src": "5270:3:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 11491,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5275:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 11488,
                      "name": "_mintBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11672,
                      "src": "5256:9:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (address,string memory,uint256) returns (uint256)"
                      }
                    },
                    "id": 11492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5256:21:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 11487,
                  "id": 11493,
                  "nodeType": "Return",
                  "src": "5249:28:30"
                }
              ]
            },
            "documentation": {
              "id": 11474,
              "nodeType": "StructuredDocumentation",
              "src": "5057:58:30",
              "text": " @dev See {IERC721CreatorCore-mintBase}."
            },
            "functionSelector": "7884af44",
            "id": 11495,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11482,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11481,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5195:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5195:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "5195:12:30"
              },
              {
                "id": 11484,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11483,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5208:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "5208:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "5208:13:30"
              }
            ],
            "name": "mintBase",
            "nameLocation": "5129:8:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11480,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5186:8:30"
            },
            "parameters": {
              "id": 11479,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11476,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5146:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11495,
                  "src": "5138:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11475,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5138:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11478,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "5166:3:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11495,
                  "src": "5150:19:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11477,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5150:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5137:33:30"
            },
            "returnParameters": {
              "id": 11487,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11486,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11495,
                  "src": "5230:7:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11485,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5230:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5229:9:30"
            },
            "scope": 12368,
            "src": "5120:164:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15317
            ],
            "body": {
              "id": 11553,
              "nodeType": "Block",
              "src": "5493:262:30",
              "statements": [
                {
                  "expression": {
                    "id": 11517,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 11511,
                      "name": "tokenIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11509,
                      "src": "5503:8:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 11515,
                          "name": "count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 11500,
                          "src": "5528:5:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        ],
                        "id": 11514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "5514:13:30",
                        "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": 11512,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5518:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 11513,
                          "nodeType": "ArrayTypeName",
                          "src": "5518:9:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 11516,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5514:20:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "5503:31:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 11518,
                  "nodeType": "ExpressionStatement",
                  "src": "5503:31:30"
                },
                {
                  "assignments": [
                    11520
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 11520,
                      "mutability": "mutable",
                      "name": "firstTokenId",
                      "nameLocation": "5552:12:30",
                      "nodeType": "VariableDeclaration",
                      "scope": 11553,
                      "src": "5544:20:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 11519,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5544:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 11524,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11523,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11521,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "5567:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 11522,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5579:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "5567:13:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5544:36:30"
                },
                {
                  "expression": {
                    "id": 11527,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 11525,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "5590:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 11526,
                      "name": "count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11500,
                      "src": "5605:5:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "5590:20:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 11528,
                  "nodeType": "ExpressionStatement",
                  "src": "5590:20:30"
                },
                {
                  "body": {
                    "id": 11551,
                    "nodeType": "Block",
                    "src": "5646:103:30",
                    "statements": [
                      {
                        "expression": {
                          "id": 11545,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 11535,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11509,
                              "src": "5660:8:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 11537,
                            "indexExpression": {
                              "id": 11536,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11530,
                              "src": "5669:1:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "5660:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 11539,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11498,
                                "src": "5684:2:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "hexValue": "",
                                "id": 11540,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5688:2:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                "value": ""
                              },
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 11543,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 11541,
                                  "name": "firstTokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11520,
                                  "src": "5692:12:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 11542,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11530,
                                  "src": "5705:1:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5692:14:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 11538,
                              "name": "_mintBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11672,
                              "src": "5674:9:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (address,string memory,uint256) returns (uint256)"
                              }
                            },
                            "id": 11544,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5674:33:30",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5660:47:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 11546,
                        "nodeType": "ExpressionStatement",
                        "src": "5660:47:30"
                      },
                      {
                        "id": 11550,
                        "nodeType": "UncheckedBlock",
                        "src": "5721:18:30",
                        "statements": [
                          {
                            "expression": {
                              "id": 11548,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "5733:3:30",
                              "subExpression": {
                                "id": 11547,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11530,
                                "src": "5735:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 11549,
                            "nodeType": "ExpressionStatement",
                            "src": "5733:3:30"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11532,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11530,
                      "src": "5634:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 11533,
                      "name": "count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11500,
                      "src": "5638:5:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "5634:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11552,
                  "initializationExpression": {
                    "assignments": [
                      11530
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 11530,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "5631:1:30",
                        "nodeType": "VariableDeclaration",
                        "scope": 11552,
                        "src": "5626:6:30",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 11529,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5626:4:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 11531,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5626:6:30"
                  },
                  "nodeType": "ForStatement",
                  "src": "5621:128:30"
                }
              ]
            },
            "documentation": {
              "id": 11496,
              "nodeType": "StructuredDocumentation",
              "src": "5290:63:30",
              "text": " @dev See {IERC721CreatorCore-mintBaseBatch}."
            },
            "functionSelector": "ad2d0ddd",
            "id": 11554,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11504,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11503,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5431:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5431:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "5431:12:30"
              },
              {
                "id": 11506,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11505,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5444:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "5444:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "5444:13:30"
              }
            ],
            "name": "mintBaseBatch",
            "nameLocation": "5367:13:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11502,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5422:8:30"
            },
            "parameters": {
              "id": 11501,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11498,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5389:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11554,
                  "src": "5381:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11497,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5381:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11500,
                  "mutability": "mutable",
                  "name": "count",
                  "nameLocation": "5400:5:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11554,
                  "src": "5393:12:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 11499,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "5393:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5380:26:30"
            },
            "returnParameters": {
              "id": 11510,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11509,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "5483:8:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11554,
                  "src": "5466:25:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11507,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5466:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 11508,
                    "nodeType": "ArrayTypeName",
                    "src": "5466:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5465:27:30"
            },
            "scope": 12368,
            "src": "5358:397:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15329
            ],
            "body": {
              "id": 11618,
              "nodeType": "Block",
              "src": "5974:285:30",
              "statements": [
                {
                  "expression": {
                    "id": 11578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 11571,
                      "name": "tokenIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11569,
                      "src": "5984:8:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 11575,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11560,
                            "src": "6009:4:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 11576,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "6014:6:30",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "6009:11:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 11574,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "5995:13:30",
                        "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": 11572,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5999:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 11573,
                          "nodeType": "ArrayTypeName",
                          "src": "5999:9:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 11577,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5995:26:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "5984:37:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 11579,
                  "nodeType": "ExpressionStatement",
                  "src": "5984:37:30"
                },
                {
                  "assignments": [
                    11581
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 11581,
                      "mutability": "mutable",
                      "name": "firstTokenId",
                      "nameLocation": "6039:12:30",
                      "nodeType": "VariableDeclaration",
                      "scope": 11618,
                      "src": "6031:20:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 11580,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6031:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 11585,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11584,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11582,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "6054:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 11583,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6066:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "6054:13:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6031:36:30"
                },
                {
                  "expression": {
                    "id": 11589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 11586,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "6077:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "expression": {
                        "id": 11587,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11560,
                        "src": "6092:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      },
                      "id": 11588,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6097:6:30",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6092:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6077:26:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 11590,
                  "nodeType": "ExpressionStatement",
                  "src": "6077:26:30"
                },
                {
                  "body": {
                    "id": 11616,
                    "nodeType": "Block",
                    "src": "6145:108:30",
                    "statements": [
                      {
                        "expression": {
                          "id": 11610,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 11598,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11569,
                              "src": "6159:8:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 11600,
                            "indexExpression": {
                              "id": 11599,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11592,
                              "src": "6168:1:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6159:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 11602,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11557,
                                "src": "6183:2:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "baseExpression": {
                                  "id": 11603,
                                  "name": "uris",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11560,
                                  "src": "6187:4:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "string calldata[] calldata"
                                  }
                                },
                                "id": 11605,
                                "indexExpression": {
                                  "id": 11604,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11592,
                                  "src": "6192:1:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "6187:7:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                }
                              },
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 11608,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 11606,
                                  "name": "firstTokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11581,
                                  "src": "6196:12:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 11607,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11592,
                                  "src": "6209:1:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6196:14:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 11601,
                              "name": "_mintBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11672,
                              "src": "6173:9:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (address,string memory,uint256) returns (uint256)"
                              }
                            },
                            "id": 11609,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6173:38:30",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6159:52:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 11611,
                        "nodeType": "ExpressionStatement",
                        "src": "6159:52:30"
                      },
                      {
                        "id": 11615,
                        "nodeType": "UncheckedBlock",
                        "src": "6225:18:30",
                        "statements": [
                          {
                            "expression": {
                              "id": 11613,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "6237:3:30",
                              "subExpression": {
                                "id": 11612,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11592,
                                "src": "6239:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 11614,
                            "nodeType": "ExpressionStatement",
                            "src": "6237:3:30"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11597,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11594,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11592,
                      "src": "6127:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 11595,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11560,
                        "src": "6131:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      },
                      "id": 11596,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6136:6:30",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6131:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6127:15:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11617,
                  "initializationExpression": {
                    "assignments": [
                      11592
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 11592,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "6124:1:30",
                        "nodeType": "VariableDeclaration",
                        "scope": 11617,
                        "src": "6119:6:30",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 11591,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "6119:4:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 11593,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6119:6:30"
                  },
                  "nodeType": "ForStatement",
                  "src": "6114:139:30"
                }
              ]
            },
            "documentation": {
              "id": 11555,
              "nodeType": "StructuredDocumentation",
              "src": "5761:63:30",
              "text": " @dev See {IERC721CreatorCore-mintBaseBatch}."
            },
            "functionSelector": "7aa15f16",
            "id": 11619,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11564,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11563,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5912:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5912:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "5912:12:30"
              },
              {
                "id": 11566,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11565,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5925:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "5925:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "5925:13:30"
              }
            ],
            "name": "mintBaseBatch",
            "nameLocation": "5838:13:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11562,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5903:8:30"
            },
            "parameters": {
              "id": 11561,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11557,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5860:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11619,
                  "src": "5852:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11556,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5852:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11560,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "5882:4:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11619,
                  "src": "5864:22:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11558,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "5864:6:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 11559,
                    "nodeType": "ArrayTypeName",
                    "src": "5864:8:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5851:36:30"
            },
            "returnParameters": {
              "id": 11570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11569,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "5964:8:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11619,
                  "src": "5947:25:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11567,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5947:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 11568,
                    "nodeType": "ArrayTypeName",
                    "src": "5947:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5946:27:30"
            },
            "scope": 12368,
            "src": "5829:430:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 11671,
              "nodeType": "Block",
              "src": "6423:316:30",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11633,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11631,
                      "name": "tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11626,
                      "src": "6437:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 11632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6448:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "6437:12:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11642,
                  "nodeType": "IfStatement",
                  "src": "6433:91:30",
                  "trueBody": {
                    "id": 11641,
                    "nodeType": "Block",
                    "src": "6451:73:30",
                    "statements": [
                      {
                        "expression": {
                          "id": 11635,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": true,
                          "src": "6465:13:30",
                          "subExpression": {
                            "id": 11634,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "6467:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 11636,
                        "nodeType": "ExpressionStatement",
                        "src": "6465:13:30"
                      },
                      {
                        "expression": {
                          "id": 11639,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 11637,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11626,
                            "src": "6492:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 11638,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "6502:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6492:21:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 11640,
                        "nodeType": "ExpressionStatement",
                        "src": "6492:21:30"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11644,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11622,
                        "src": "6572:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11645,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11626,
                        "src": "6576:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 11643,
                      "name": "_preMintBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14052,
                      "src": "6559:12:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 11646,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6559:25:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11647,
                  "nodeType": "ExpressionStatement",
                  "src": "6559:25:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11649,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11622,
                        "src": "6605:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11650,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11626,
                        "src": "6609:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 11651,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6618:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 11648,
                      "name": "_safeMint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20227,
                        20316
                      ],
                      "referencedDeclaration": 20227,
                      "src": "6595:9:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint96_$returns$__$",
                        "typeString": "function (address,uint256,uint96)"
                      }
                    },
                    "id": 11652,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6595:25:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11653,
                  "nodeType": "ExpressionStatement",
                  "src": "6595:25:30"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "arguments": [
                          {
                            "id": 11656,
                            "name": "uri",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11624,
                            "src": "6641:3:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 11655,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6635:5:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 11654,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "6635:5:30",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 11657,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6635:10:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 11658,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6646:6:30",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6635:17:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 11659,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6655:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "6635:21:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11668,
                  "nodeType": "IfStatement",
                  "src": "6631:77:30",
                  "trueBody": {
                    "id": 11667,
                    "nodeType": "Block",
                    "src": "6658:50:30",
                    "statements": [
                      {
                        "expression": {
                          "id": 11665,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 11661,
                              "name": "_tokenURIs",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12456,
                              "src": "6672:10:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                "typeString": "mapping(uint256 => string storage ref)"
                              }
                            },
                            "id": 11663,
                            "indexExpression": {
                              "id": 11662,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11626,
                              "src": "6683:7:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6672:19:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_storage",
                              "typeString": "string storage ref"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 11664,
                            "name": "uri",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11624,
                            "src": "6694:3:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "src": "6672:25:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        "id": 11666,
                        "nodeType": "ExpressionStatement",
                        "src": "6672:25:30"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 11669,
                    "name": "tokenId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 11626,
                    "src": "6725:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 11630,
                  "id": 11670,
                  "nodeType": "Return",
                  "src": "6718:14:30"
                }
              ]
            },
            "documentation": {
              "id": 11620,
              "nodeType": "StructuredDocumentation",
              "src": "6265:52:30",
              "text": " @dev Mint token with no extension"
            },
            "id": 11672,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintBase",
            "nameLocation": "6331:9:30",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11627,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11622,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6349:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11672,
                  "src": "6341:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11621,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6341:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11624,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "6367:3:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11672,
                  "src": "6353:17:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11623,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6353:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11626,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "6380:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11672,
                  "src": "6372:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11625,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6372:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6340:48:30"
            },
            "returnParameters": {
              "id": 11630,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11629,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11672,
                  "src": "6414:7:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11628,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6414:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6413:9:30"
            },
            "scope": 12368,
            "src": "6322:417:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15337
            ],
            "body": {
              "id": 11693,
              "nodeType": "Block",
              "src": "6902:80:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11683,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "6912:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11684,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6912:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11685,
                  "nodeType": "ExpressionStatement",
                  "src": "6912:18:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11687,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11675,
                        "src": "6962:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "",
                        "id": 11688,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6966:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "hexValue": "30",
                        "id": 11689,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6970:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "30",
                        "id": 11690,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6973:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 11686,
                      "name": "_mintExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12004,
                      "src": "6947:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                      }
                    },
                    "id": 11691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6947:28:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 11682,
                  "id": 11692,
                  "nodeType": "Return",
                  "src": "6940:35:30"
                }
              ]
            },
            "documentation": {
              "id": 11673,
              "nodeType": "StructuredDocumentation",
              "src": "6745:63:30",
              "text": " @dev See {IERC721CreatorCore-mintExtension}."
            },
            "functionSelector": "2928ca58",
            "id": 11694,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11679,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11678,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "6872:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "6872:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "6872:12:30"
              }
            ],
            "name": "mintExtension",
            "nameLocation": "6822:13:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11677,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6863:8:30"
            },
            "parameters": {
              "id": 11676,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11675,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6844:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11694,
                  "src": "6836:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11674,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6836:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6835:12:30"
            },
            "returnParameters": {
              "id": 11682,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11681,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11694,
                  "src": "6893:7:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11680,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6893:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6892:9:30"
            },
            "scope": 12368,
            "src": "6813:169:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15347
            ],
            "body": {
              "id": 11717,
              "nodeType": "Block",
              "src": "7166:81:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11707,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "7176:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11708,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7176:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11709,
                  "nodeType": "ExpressionStatement",
                  "src": "7176:18:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11711,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11697,
                        "src": "7226:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11712,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11699,
                        "src": "7230:3:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 11713,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7235:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "30",
                        "id": 11714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7238:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 11710,
                      "name": "_mintExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12004,
                      "src": "7211:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                      }
                    },
                    "id": 11715,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7211:29:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 11706,
                  "id": 11716,
                  "nodeType": "Return",
                  "src": "7204:36:30"
                }
              ]
            },
            "documentation": {
              "id": 11695,
              "nodeType": "StructuredDocumentation",
              "src": "6988:63:30",
              "text": " @dev See {IERC721CreatorCore-mintExtension}."
            },
            "functionSelector": "fe2e1f58",
            "id": 11718,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11703,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11702,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "7136:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "7136:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "7136:12:30"
              }
            ],
            "name": "mintExtension",
            "nameLocation": "7065:13:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11701,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7127:8:30"
            },
            "parameters": {
              "id": 11700,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11697,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "7087:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11718,
                  "src": "7079:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11696,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7079:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11699,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "7107:3:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11718,
                  "src": "7091:19:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11698,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7091:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7078:33:30"
            },
            "returnParameters": {
              "id": 11706,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11705,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11718,
                  "src": "7157:7:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11704,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7157:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7156:9:30"
            },
            "scope": 12368,
            "src": "7056:191:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15357
            ],
            "body": {
              "id": 11741,
              "nodeType": "Block",
              "src": "7423:83:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11731,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "7433:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11732,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7433:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11733,
                  "nodeType": "ExpressionStatement",
                  "src": "7433:18:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11735,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11721,
                        "src": "7483:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "",
                        "id": 11736,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7487:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "id": 11737,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11723,
                        "src": "7491:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 11738,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7497:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 11734,
                      "name": "_mintExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12004,
                      "src": "7468:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                      }
                    },
                    "id": 11739,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7468:31:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 11730,
                  "id": 11740,
                  "nodeType": "Return",
                  "src": "7461:38:30"
                }
              ]
            },
            "documentation": {
              "id": 11719,
              "nodeType": "StructuredDocumentation",
              "src": "7253:63:30",
              "text": " @dev See {IERC721CreatorCore-mintExtension}."
            },
            "functionSelector": "d3973719",
            "id": 11742,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11727,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11726,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "7393:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "7393:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "7393:12:30"
              }
            ],
            "name": "mintExtension",
            "nameLocation": "7330:13:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11725,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7384:8:30"
            },
            "parameters": {
              "id": 11724,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11721,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "7352:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11742,
                  "src": "7344:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11720,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7344:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11723,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "7363:4:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11742,
                  "src": "7356:11:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 11722,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "7356:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7343:25:30"
            },
            "returnParameters": {
              "id": 11730,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11729,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11742,
                  "src": "7414:7:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11728,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7414:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7413:9:30"
            },
            "scope": 12368,
            "src": "7321:185:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15368
            ],
            "body": {
              "id": 11802,
              "nodeType": "Block",
              "src": "7711:298:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11756,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "7721:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11757,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7721:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11758,
                  "nodeType": "ExpressionStatement",
                  "src": "7721:18:30"
                },
                {
                  "expression": {
                    "id": 11765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 11759,
                      "name": "tokenIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11754,
                      "src": "7749:8:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 11763,
                          "name": "count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 11747,
                          "src": "7774:5:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        ],
                        "id": 11762,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "7760:13:30",
                        "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": 11760,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7764:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 11761,
                          "nodeType": "ArrayTypeName",
                          "src": "7764:9:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 11764,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7760:20:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "7749:31:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 11766,
                  "nodeType": "ExpressionStatement",
                  "src": "7749:31:30"
                },
                {
                  "assignments": [
                    11768
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 11768,
                      "mutability": "mutable",
                      "name": "firstTokenId",
                      "nameLocation": "7798:12:30",
                      "nodeType": "VariableDeclaration",
                      "scope": 11802,
                      "src": "7790:20:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 11767,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7790:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 11772,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11771,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11769,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "7813:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 11770,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7825:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "7813:13:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7790:36:30"
                },
                {
                  "expression": {
                    "id": 11775,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 11773,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "7836:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 11774,
                      "name": "count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11747,
                      "src": "7851:5:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "7836:20:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 11776,
                  "nodeType": "ExpressionStatement",
                  "src": "7836:20:30"
                },
                {
                  "body": {
                    "id": 11800,
                    "nodeType": "Block",
                    "src": "7892:111:30",
                    "statements": [
                      {
                        "expression": {
                          "id": 11794,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 11783,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11754,
                              "src": "7906:8:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 11785,
                            "indexExpression": {
                              "id": 11784,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11778,
                              "src": "7915:1:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7906:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 11787,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11745,
                                "src": "7935:2:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "hexValue": "",
                                "id": 11788,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7939:2:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                "value": ""
                              },
                              {
                                "hexValue": "30",
                                "id": 11789,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7943:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 11792,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 11790,
                                  "name": "firstTokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11768,
                                  "src": "7946:12:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 11791,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11778,
                                  "src": "7959:1:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7946:14:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 11786,
                              "name": "_mintExtension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12004,
                              "src": "7920:14:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                              }
                            },
                            "id": 11793,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7920:41:30",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7906:55:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 11795,
                        "nodeType": "ExpressionStatement",
                        "src": "7906:55:30"
                      },
                      {
                        "id": 11799,
                        "nodeType": "UncheckedBlock",
                        "src": "7975:18:30",
                        "statements": [
                          {
                            "expression": {
                              "id": 11797,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "7987:3:30",
                              "subExpression": {
                                "id": 11796,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11778,
                                "src": "7989:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 11798,
                            "nodeType": "ExpressionStatement",
                            "src": "7987:3:30"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11780,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11778,
                      "src": "7880:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 11781,
                      "name": "count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11747,
                      "src": "7884:5:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "7880:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11801,
                  "initializationExpression": {
                    "assignments": [
                      11778
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 11778,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "7877:1:30",
                        "nodeType": "VariableDeclaration",
                        "scope": 11801,
                        "src": "7872:6:30",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 11777,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7872:4:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 11779,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7872:6:30"
                  },
                  "nodeType": "ForStatement",
                  "src": "7867:136:30"
                }
              ]
            },
            "documentation": {
              "id": 11743,
              "nodeType": "StructuredDocumentation",
              "src": "7512:68:30",
              "text": " @dev See {IERC721CreatorCore-mintExtensionBatch}."
            },
            "functionSelector": "e00aab4b",
            "id": 11803,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11751,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11750,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "7663:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "7663:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "7663:12:30"
              }
            ],
            "name": "mintExtensionBatch",
            "nameLocation": "7594:18:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11749,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7654:8:30"
            },
            "parameters": {
              "id": 11748,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11745,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "7621:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11803,
                  "src": "7613:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11744,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7613:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11747,
                  "mutability": "mutable",
                  "name": "count",
                  "nameLocation": "7632:5:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11803,
                  "src": "7625:12:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 11746,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "7625:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7612:26:30"
            },
            "returnParameters": {
              "id": 11755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11754,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "7701:8:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11803,
                  "src": "7684:25:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11752,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "7684:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 11753,
                    "nodeType": "ArrayTypeName",
                    "src": "7684:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7683:27:30"
            },
            "scope": 12368,
            "src": "7585:424:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15380
            ],
            "body": {
              "id": 11869,
              "nodeType": "Block",
              "src": "8224:321:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11818,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "8234:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11819,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8234:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11820,
                  "nodeType": "ExpressionStatement",
                  "src": "8234:18:30"
                },
                {
                  "expression": {
                    "id": 11828,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 11821,
                      "name": "tokenIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11816,
                      "src": "8262:8:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 11825,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11809,
                            "src": "8287:4:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 11826,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "8292:6:30",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "8287:11:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 11824,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "8273:13:30",
                        "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": 11822,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "8277:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 11823,
                          "nodeType": "ArrayTypeName",
                          "src": "8277:9:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 11827,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8273:26:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "8262:37:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 11829,
                  "nodeType": "ExpressionStatement",
                  "src": "8262:37:30"
                },
                {
                  "assignments": [
                    11831
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 11831,
                      "mutability": "mutable",
                      "name": "firstTokenId",
                      "nameLocation": "8317:12:30",
                      "nodeType": "VariableDeclaration",
                      "scope": 11869,
                      "src": "8309:20:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 11830,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8309:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 11835,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11834,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11832,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "8332:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 11833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8344:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "8332:13:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8309:36:30"
                },
                {
                  "expression": {
                    "id": 11839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 11836,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "8355:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "expression": {
                        "id": 11837,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11809,
                        "src": "8370:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      },
                      "id": 11838,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8375:6:30",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8370:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8355:26:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 11840,
                  "nodeType": "ExpressionStatement",
                  "src": "8355:26:30"
                },
                {
                  "body": {
                    "id": 11867,
                    "nodeType": "Block",
                    "src": "8423:116:30",
                    "statements": [
                      {
                        "expression": {
                          "id": 11861,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 11848,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11816,
                              "src": "8437:8:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 11850,
                            "indexExpression": {
                              "id": 11849,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11842,
                              "src": "8446:1:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "8437:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 11852,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11806,
                                "src": "8466:2:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "baseExpression": {
                                  "id": 11853,
                                  "name": "uris",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11809,
                                  "src": "8470:4:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "string calldata[] calldata"
                                  }
                                },
                                "id": 11855,
                                "indexExpression": {
                                  "id": 11854,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11842,
                                  "src": "8475:1:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8470:7:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                }
                              },
                              {
                                "hexValue": "30",
                                "id": 11856,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8479:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 11859,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 11857,
                                  "name": "firstTokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11831,
                                  "src": "8482:12:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 11858,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11842,
                                  "src": "8495:1:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "8482:14:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                },
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 11851,
                              "name": "_mintExtension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12004,
                              "src": "8451:14:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                              }
                            },
                            "id": 11860,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8451:46:30",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8437:60:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 11862,
                        "nodeType": "ExpressionStatement",
                        "src": "8437:60:30"
                      },
                      {
                        "id": 11866,
                        "nodeType": "UncheckedBlock",
                        "src": "8511:18:30",
                        "statements": [
                          {
                            "expression": {
                              "id": 11864,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "8523:3:30",
                              "subExpression": {
                                "id": 11863,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11842,
                                "src": "8525:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 11865,
                            "nodeType": "ExpressionStatement",
                            "src": "8523:3:30"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11847,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11844,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11842,
                      "src": "8405:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 11845,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11809,
                        "src": "8409:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      },
                      "id": 11846,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8414:6:30",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8409:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8405:15:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11868,
                  "initializationExpression": {
                    "assignments": [
                      11842
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 11842,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "8402:1:30",
                        "nodeType": "VariableDeclaration",
                        "scope": 11868,
                        "src": "8397:6:30",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 11841,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "8397:4:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 11843,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8397:6:30"
                  },
                  "nodeType": "ForStatement",
                  "src": "8392:147:30"
                }
              ]
            },
            "documentation": {
              "id": 11804,
              "nodeType": "StructuredDocumentation",
              "src": "8015:68:30",
              "text": " @dev See {IERC721CreatorCore-mintExtensionBatch}."
            },
            "functionSelector": "38e52e78",
            "id": 11870,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11813,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11812,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "8176:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "8176:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "8176:12:30"
              }
            ],
            "name": "mintExtensionBatch",
            "nameLocation": "8097:18:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11811,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8167:8:30"
            },
            "parameters": {
              "id": 11810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11806,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "8124:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11870,
                  "src": "8116:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11805,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8116:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11809,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "8146:4:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11870,
                  "src": "8128:22:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11807,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "8128:6:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 11808,
                    "nodeType": "ArrayTypeName",
                    "src": "8128:8:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8115:36:30"
            },
            "returnParameters": {
              "id": 11817,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11816,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "8214:8:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11870,
                  "src": "8197:25:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11814,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "8197:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 11815,
                    "nodeType": "ArrayTypeName",
                    "src": "8197:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8196:27:30"
            },
            "scope": 12368,
            "src": "8088:457:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15392
            ],
            "body": {
              "id": 11936,
              "nodeType": "Block",
              "src": "8760:322:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11885,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "8770:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 11886,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8770:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11887,
                  "nodeType": "ExpressionStatement",
                  "src": "8770:18:30"
                },
                {
                  "expression": {
                    "id": 11895,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 11888,
                      "name": "tokenIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11883,
                      "src": "8798:8:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 11892,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11876,
                            "src": "8823:4:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint80_$dyn_calldata_ptr",
                              "typeString": "uint80[] calldata"
                            }
                          },
                          "id": 11893,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "8828:6:30",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "8823:11:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 11891,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "8809:13:30",
                        "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": 11889,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "8813:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 11890,
                          "nodeType": "ArrayTypeName",
                          "src": "8813:9:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 11894,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8809:26:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "8798:37:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 11896,
                  "nodeType": "ExpressionStatement",
                  "src": "8798:37:30"
                },
                {
                  "assignments": [
                    11898
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 11898,
                      "mutability": "mutable",
                      "name": "firstTokenId",
                      "nameLocation": "8853:12:30",
                      "nodeType": "VariableDeclaration",
                      "scope": 11936,
                      "src": "8845:20:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 11897,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8845:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 11902,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11901,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11899,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "8868:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 11900,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8880:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "8868:13:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8845:36:30"
                },
                {
                  "expression": {
                    "id": 11906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 11903,
                      "name": "_tokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12432,
                      "src": "8891:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "expression": {
                        "id": 11904,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11876,
                        "src": "8906:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint80_$dyn_calldata_ptr",
                          "typeString": "uint80[] calldata"
                        }
                      },
                      "id": 11905,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8911:6:30",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8906:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8891:26:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 11907,
                  "nodeType": "ExpressionStatement",
                  "src": "8891:26:30"
                },
                {
                  "body": {
                    "id": 11934,
                    "nodeType": "Block",
                    "src": "8959:117:30",
                    "statements": [
                      {
                        "expression": {
                          "id": 11928,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 11915,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11883,
                              "src": "8973:8:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 11917,
                            "indexExpression": {
                              "id": 11916,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11909,
                              "src": "8982:1:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "8973:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 11919,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11873,
                                "src": "9002:2:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "hexValue": "",
                                "id": 11920,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9006:2:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                "value": ""
                              },
                              {
                                "baseExpression": {
                                  "id": 11921,
                                  "name": "data",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11876,
                                  "src": "9010:4:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint80_$dyn_calldata_ptr",
                                    "typeString": "uint80[] calldata"
                                  }
                                },
                                "id": 11923,
                                "indexExpression": {
                                  "id": 11922,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11909,
                                  "src": "9015:1:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9010:7:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint80",
                                  "typeString": "uint80"
                                }
                              },
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 11926,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 11924,
                                  "name": "firstTokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11898,
                                  "src": "9019:12:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 11925,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 11909,
                                  "src": "9032:1:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "9019:14:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                  "typeString": "literal_string \"\""
                                },
                                {
                                  "typeIdentifier": "t_uint80",
                                  "typeString": "uint80"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 11918,
                              "name": "_mintExtension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12004,
                              "src": "8987:14:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint80_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (address,string memory,uint80,uint256) returns (uint256)"
                              }
                            },
                            "id": 11927,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8987:47:30",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8973:61:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 11929,
                        "nodeType": "ExpressionStatement",
                        "src": "8973:61:30"
                      },
                      {
                        "id": 11933,
                        "nodeType": "UncheckedBlock",
                        "src": "9048:18:30",
                        "statements": [
                          {
                            "expression": {
                              "id": 11931,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "9060:3:30",
                              "subExpression": {
                                "id": 11930,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11909,
                                "src": "9062:1:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 11932,
                            "nodeType": "ExpressionStatement",
                            "src": "9060:3:30"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11914,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11911,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11909,
                      "src": "8941:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 11912,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11876,
                        "src": "8945:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint80_$dyn_calldata_ptr",
                          "typeString": "uint80[] calldata"
                        }
                      },
                      "id": 11913,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8950:6:30",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8945:11:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8941:15:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11935,
                  "initializationExpression": {
                    "assignments": [
                      11909
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 11909,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "8938:1:30",
                        "nodeType": "VariableDeclaration",
                        "scope": 11935,
                        "src": "8933:6:30",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 11908,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "8933:4:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 11910,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8933:6:30"
                  },
                  "nodeType": "ForStatement",
                  "src": "8928:148:30"
                }
              ]
            },
            "documentation": {
              "id": 11871,
              "nodeType": "StructuredDocumentation",
              "src": "8551:68:30",
              "text": " @dev See {IERC721CreatorCore-mintExtensionBatch}."
            },
            "functionSelector": "4278330e",
            "id": 11937,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 11880,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 11879,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "8712:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "8712:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "8712:12:30"
              }
            ],
            "name": "mintExtensionBatch",
            "nameLocation": "8633:18:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 11878,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8703:8:30"
            },
            "parameters": {
              "id": 11877,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11873,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "8660:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11937,
                  "src": "8652:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11872,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8652:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11876,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "8682:4:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11937,
                  "src": "8664:22:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint80_$dyn_calldata_ptr",
                    "typeString": "uint80[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11874,
                      "name": "uint80",
                      "nodeType": "ElementaryTypeName",
                      "src": "8664:6:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint80",
                        "typeString": "uint80"
                      }
                    },
                    "id": 11875,
                    "nodeType": "ArrayTypeName",
                    "src": "8664:8:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint80_$dyn_storage_ptr",
                      "typeString": "uint80[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8651:36:30"
            },
            "returnParameters": {
              "id": 11884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11883,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "8750:8:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 11937,
                  "src": "8733:25:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 11881,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "8733:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 11882,
                    "nodeType": "ArrayTypeName",
                    "src": "8733:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8732:27:30"
            },
            "scope": 12368,
            "src": "8624:458:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12003,
              "nodeType": "Block",
              "src": "9264:406:30",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11953,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11951,
                      "name": "tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11946,
                      "src": "9278:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 11952,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9289:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9278:12:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11962,
                  "nodeType": "IfStatement",
                  "src": "9274:91:30",
                  "trueBody": {
                    "id": 11961,
                    "nodeType": "Block",
                    "src": "9292:73:30",
                    "statements": [
                      {
                        "expression": {
                          "id": 11955,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": true,
                          "src": "9306:13:30",
                          "subExpression": {
                            "id": 11954,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "9308:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 11956,
                        "nodeType": "ExpressionStatement",
                        "src": "9306:13:30"
                      },
                      {
                        "expression": {
                          "id": 11959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 11957,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11946,
                            "src": "9333:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 11958,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "9343:11:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "9333:21:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 11960,
                        "nodeType": "ExpressionStatement",
                        "src": "9333:21:30"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11964,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11940,
                        "src": "9397:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11965,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11946,
                        "src": "9401:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 11963,
                      "name": "_checkMintPermissions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14043,
                      "src": "9375:21:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 11966,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9375:34:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11967,
                  "nodeType": "ExpressionStatement",
                  "src": "9375:34:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11969,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11940,
                        "src": "9462:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11970,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11946,
                        "src": "9466:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 11968,
                      "name": "_preMintExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14061,
                      "src": "9444:17:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 11971,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9444:30:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11972,
                  "nodeType": "ExpressionStatement",
                  "src": "9444:30:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 11974,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11940,
                        "src": "9495:2:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 11975,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11946,
                        "src": "9499:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "id": 11983,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          },
                          "id": 11978,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 11976,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11944,
                            "src": "9508:4:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint80",
                              "typeString": "uint80"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "hexValue": "3136",
                            "id": 11977,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9516:2:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "9508:10:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "baseExpression": {
                            "id": 11979,
                            "name": "_extensionToIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13891,
                            "src": "9521:17:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$",
                              "typeString": "mapping(address => uint16)"
                            }
                          },
                          "id": 11982,
                          "indexExpression": {
                            "expression": {
                              "id": 11980,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "9539:3:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 11981,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9543:6:30",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "9539:10:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9521:29:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "src": "9508:42:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      ],
                      "id": 11973,
                      "name": "_safeMint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20227,
                        20316
                      ],
                      "referencedDeclaration": 20227,
                      "src": "9485:9:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint96_$returns$__$",
                        "typeString": "function (address,uint256,uint96)"
                      }
                    },
                    "id": 11984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9485:66:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11985,
                  "nodeType": "ExpressionStatement",
                  "src": "9485:66:30"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 11992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "arguments": [
                          {
                            "id": 11988,
                            "name": "uri",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11942,
                            "src": "9572:3:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 11987,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9566:5:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 11986,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "9566:5:30",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 11989,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9566:10:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 11990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9577:6:30",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "9566:17:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 11991,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9586:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9566:21:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 12000,
                  "nodeType": "IfStatement",
                  "src": "9562:77:30",
                  "trueBody": {
                    "id": 11999,
                    "nodeType": "Block",
                    "src": "9589:50:30",
                    "statements": [
                      {
                        "expression": {
                          "id": 11997,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 11993,
                              "name": "_tokenURIs",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12456,
                              "src": "9603:10:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                "typeString": "mapping(uint256 => string storage ref)"
                              }
                            },
                            "id": 11995,
                            "indexExpression": {
                              "id": 11994,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11946,
                              "src": "9614:7:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "9603:19:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_storage",
                              "typeString": "string storage ref"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 11996,
                            "name": "uri",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11942,
                            "src": "9625:3:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "src": "9603:25:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        "id": 11998,
                        "nodeType": "ExpressionStatement",
                        "src": "9603:25:30"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 12001,
                    "name": "tokenId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 11946,
                    "src": "9656:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 11950,
                  "id": 12002,
                  "nodeType": "Return",
                  "src": "9649:14:30"
                }
              ]
            },
            "documentation": {
              "id": 11938,
              "nodeType": "StructuredDocumentation",
              "src": "9092:48:30",
              "text": " @dev Mint token via extension"
            },
            "id": 12004,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintExtension",
            "nameLocation": "9154:14:30",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11947,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11940,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "9177:2:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12004,
                  "src": "9169:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11939,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9169:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11942,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "9195:3:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12004,
                  "src": "9181:17:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11941,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9181:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11944,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "9207:4:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12004,
                  "src": "9200:11:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 11943,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "9200:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11946,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "9221:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12004,
                  "src": "9213:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11945,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9213:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9168:61:30"
            },
            "returnParameters": {
              "id": 11950,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11949,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12004,
                  "src": "9255:7:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 11948,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9255:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9254:9:30"
            },
            "scope": 12368,
            "src": "9145:525:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15100
            ],
            "body": {
              "id": 12045,
              "nodeType": "Block",
              "src": "9843:264:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 12015,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12007,
                            "src": "9869:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12014,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "9861:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12016,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9861:16:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 12017,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9879:19:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 12013,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "9853:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9853:46:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12019,
                  "nodeType": "ExpressionStatement",
                  "src": "9853:46:30"
                },
                {
                  "expression": {
                    "id": 12024,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 12020,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12011,
                      "src": "9909:9:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 12022,
                          "name": "tokenId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12007,
                          "src": "9937:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 12021,
                        "name": "_tokenExtension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          12348
                        ],
                        "referencedDeclaration": 12348,
                        "src": "9921:15:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                          "typeString": "function (uint256) view returns (address)"
                        }
                      },
                      "id": 12023,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9921:24:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "9909:36:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 12025,
                  "nodeType": "ExpressionStatement",
                  "src": "9909:36:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 12032,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 12027,
                          "name": "extension",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12011,
                          "src": "9963:9:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 12030,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9984:1:30",
                              "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": 12029,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "9976:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 12028,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "9976:7:30",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 12031,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9976:10:30",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "9963:23:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f20657874656e73696f6e20666f7220746f6b656e",
                        "id": 12033,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9988:24:30",
                        "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": 12026,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "9955:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12034,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9955:58:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12035,
                  "nodeType": "ExpressionStatement",
                  "src": "9955:58:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "10031:43:30",
                        "subExpression": {
                          "arguments": [
                            {
                              "id": 12039,
                              "name": "extension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12011,
                              "src": "10064:9:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "id": 12037,
                              "name": "_blacklistedExtensions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12440,
                              "src": "10032:22:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AddressSet_$3529_storage",
                                "typeString": "struct EnumerableSet.AddressSet storage ref"
                              }
                            },
                            "id": 12038,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10055:8:30",
                            "memberName": "contains",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3610,
                            "src": "10032:31:30",
                            "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": 12040,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10032:42:30",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "457874656e73696f6e20626c61636b6c6973746564",
                        "id": 12042,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10076:23:30",
                        "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": 12036,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10023:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12043,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10023:77:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12044,
                  "nodeType": "ExpressionStatement",
                  "src": "10023:77:30"
                }
              ]
            },
            "documentation": {
              "id": 12005,
              "nodeType": "StructuredDocumentation",
              "src": "9676:64:30",
              "text": " @dev See {IERC721CreatorCore-tokenExtension}."
            },
            "functionSelector": "239be317",
            "id": 12046,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenExtension",
            "nameLocation": "9754:14:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12009,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9806:8:30"
            },
            "parameters": {
              "id": 12008,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12007,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "9777:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12046,
                  "src": "9769:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12006,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9769:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9768:17:30"
            },
            "returnParameters": {
              "id": 12012,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12011,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "9832:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12046,
                  "src": "9824:17:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12010,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9824:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9823:19:30"
            },
            "scope": 12368,
            "src": "9745:362:30",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15398
            ],
            "body": {
              "id": 12086,
              "nodeType": "Block",
              "src": "10240:266:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 12057,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "10277:3:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 12058,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10281:6:30",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "10277:10:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 12059,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12049,
                            "src": "10289:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12056,
                          "name": "_isApprovedOrOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20209,
                          "src": "10258:18:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 12060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10258:39:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564",
                        "id": 12061,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10299:33:30",
                        "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": 12055,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10250:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10250:83:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12063,
                  "nodeType": "ExpressionStatement",
                  "src": "10250:83:30"
                },
                {
                  "assignments": [
                    12065
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12065,
                      "mutability": "mutable",
                      "name": "owner",
                      "nameLocation": "10351:5:30",
                      "nodeType": "VariableDeclaration",
                      "scope": 12086,
                      "src": "10343:13:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 12064,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "10343:7:30",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 12069,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 12067,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12049,
                        "src": "10367:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12066,
                      "name": "ownerOf",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19935,
                      "src": "10359:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                        "typeString": "function (uint256) view returns (address)"
                      }
                    },
                    "id": 12068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10359:16:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10343:32:30"
                },
                {
                  "assignments": [
                    12071
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12071,
                      "mutability": "mutable",
                      "name": "extension",
                      "nameLocation": "10393:9:30",
                      "nodeType": "VariableDeclaration",
                      "scope": 12086,
                      "src": "10385:17:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 12070,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "10385:7:30",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 12075,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 12073,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12049,
                        "src": "10421:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12072,
                      "name": "_tokenExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12348
                      ],
                      "referencedDeclaration": 12348,
                      "src": "10405:15:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                        "typeString": "function (uint256) view returns (address)"
                      }
                    },
                    "id": 12074,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10405:24:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10385:44:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12077,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12049,
                        "src": "10445:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12076,
                      "name": "_burn",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20389,
                      "src": "10439:5:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 12078,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10439:14:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12079,
                  "nodeType": "ExpressionStatement",
                  "src": "10439:14:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12081,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12065,
                        "src": "10473:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 12082,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12049,
                        "src": "10480:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 12083,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12071,
                        "src": "10489:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 12080,
                      "name": "_postBurn",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14114,
                      "src": "10463:9:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (address,uint256,address)"
                      }
                    },
                    "id": 12084,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10463:36:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12085,
                  "nodeType": "ExpressionStatement",
                  "src": "10463:36:30"
                }
              ]
            },
            "documentation": {
              "id": 12047,
              "nodeType": "StructuredDocumentation",
              "src": "10113:54:30",
              "text": " @dev See {IERC721CreatorCore-burn}."
            },
            "functionSelector": "42966c68",
            "id": 12087,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 12053,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 12052,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "10227:12:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "10227:12:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "10227:12:30"
              }
            ],
            "name": "burn",
            "nameLocation": "10181:4:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12051,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10218:8:30"
            },
            "parameters": {
              "id": 12050,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12049,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "10194:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12087,
                  "src": "10186:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12048,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10186:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10185:17:30"
            },
            "returnParameters": {
              "id": 12054,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10240:0:30"
            },
            "scope": 12368,
            "src": "10172:334:30",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15110
            ],
            "body": {
              "id": 12109,
              "nodeType": "Block",
              "src": "10697:75:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 12103,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "10738:1:30",
                            "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": 12102,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "10730:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 12101,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "10730:7:30",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 12104,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10730:10:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 12105,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12091,
                        "src": "10742:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 12106,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12094,
                        "src": "10753:11:30",
                        "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": 12100,
                      "name": "_setRoyaltiesExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13346,
                      "src": "10707:22:30",
                      "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": 12107,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10707:58:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12108,
                  "nodeType": "ExpressionStatement",
                  "src": "10707:58:30"
                }
              ]
            },
            "documentation": {
              "id": 12088,
              "nodeType": "StructuredDocumentation",
              "src": "10512:56:30",
              "text": " @dev See {ICreatorCore-setRoyalties}."
            },
            "functionSelector": "332dd1ae",
            "id": 12110,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 12098,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 12097,
                  "name": "adminRequired",
                  "nameLocations": [
                    "10683:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "10683:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "10683:13:30"
              }
            ],
            "name": "setRoyalties",
            "nameLocation": "10582:12:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12096,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10674:8:30"
            },
            "parameters": {
              "id": 12095,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12091,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "10622:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12110,
                  "src": "10595:36:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12089,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "10595:15:30",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 12090,
                    "nodeType": "ArrayTypeName",
                    "src": "10595:17:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12094,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "10652:11:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12110,
                  "src": "10633:30:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12092,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "10633:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 12093,
                    "nodeType": "ArrayTypeName",
                    "src": "10633:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10594:70:30"
            },
            "returnParameters": {
              "id": 12099,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10697:0:30"
            },
            "scope": 12368,
            "src": "10573:199:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15122
            ],
            "body": {
              "id": 12138,
              "nodeType": "Block",
              "src": "10980:119:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 12127,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12113,
                            "src": "11006:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12126,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "10998:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12128,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10998:16:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 12129,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11016:19:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 12125,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10990:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10990:46:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12131,
                  "nodeType": "ExpressionStatement",
                  "src": "10990:46:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12133,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12113,
                        "src": "11060:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 12134,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12116,
                        "src": "11069:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 12135,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12119,
                        "src": "11080:11:30",
                        "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": 12132,
                      "name": "_setRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13295,
                      "src": "11046:13:30",
                      "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": 12136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11046:46:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12137,
                  "nodeType": "ExpressionStatement",
                  "src": "11046:46:30"
                }
              ]
            },
            "documentation": {
              "id": 12111,
              "nodeType": "StructuredDocumentation",
              "src": "10778:56:30",
              "text": " @dev See {ICreatorCore-setRoyalties}."
            },
            "functionSelector": "20e4afe2",
            "id": 12139,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 12123,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 12122,
                  "name": "adminRequired",
                  "nameLocations": [
                    "10966:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "10966:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "10966:13:30"
              }
            ],
            "name": "setRoyalties",
            "nameLocation": "10848:12:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12121,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10957:8:30"
            },
            "parameters": {
              "id": 12120,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12113,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "10869:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12139,
                  "src": "10861:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12112,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10861:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12116,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "10905:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12139,
                  "src": "10878:36:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12114,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "10878:15:30",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 12115,
                    "nodeType": "ArrayTypeName",
                    "src": "10878:17:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12119,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "10935:11:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12139,
                  "src": "10916:30:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12117,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "10916:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 12118,
                    "nodeType": "ArrayTypeName",
                    "src": "10916:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10860:87:30"
            },
            "returnParameters": {
              "id": 12124,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10980:0:30"
            },
            "scope": 12368,
            "src": "10839:260:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15134
            ],
            "body": {
              "id": 12160,
              "nodeType": "Block",
              "src": "11327:74:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12155,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12142,
                        "src": "11360:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 12156,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12145,
                        "src": "11371:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 12157,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12148,
                        "src": "11382:11:30",
                        "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": 12154,
                      "name": "_setRoyaltiesExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13346,
                      "src": "11337:22:30",
                      "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": 12158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11337:57:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12159,
                  "nodeType": "ExpressionStatement",
                  "src": "11337:57:30"
                }
              ]
            },
            "documentation": {
              "id": 12140,
              "nodeType": "StructuredDocumentation",
              "src": "11105:65:30",
              "text": " @dev See {ICreatorCore-setRoyaltiesExtension}."
            },
            "functionSelector": "b0fe87c9",
            "id": 12161,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 12152,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 12151,
                  "name": "adminRequired",
                  "nameLocations": [
                    "11313:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "11313:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "11313:13:30"
              }
            ],
            "name": "setRoyaltiesExtension",
            "nameLocation": "11184:21:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12150,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11304:8:30"
            },
            "parameters": {
              "id": 12149,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12142,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "11214:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12161,
                  "src": "11206:17:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12141,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11206:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12145,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "11252:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12161,
                  "src": "11225:36:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12143,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11225:15:30",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 12144,
                    "nodeType": "ArrayTypeName",
                    "src": "11225:17:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12148,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "11282:11:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12161,
                  "src": "11263:30:30",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12146,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11263:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 12147,
                    "nodeType": "ArrayTypeName",
                    "src": "11263:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11205:89:30"
            },
            "returnParameters": {
              "id": 12153,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11327:0:30"
            },
            "scope": 12368,
            "src": "11175:226:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15146
            ],
            "body": {
              "id": 12185,
              "nodeType": "Block",
              "src": "11591:102:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 12176,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12164,
                            "src": "11617:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12175,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "11609:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12177,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11609:16:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 12178,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11627:19:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 12174,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11601:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11601:46:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12180,
                  "nodeType": "ExpressionStatement",
                  "src": "11601:46:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12182,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12164,
                        "src": "11678:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12181,
                      "name": "_getRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13169,
                      "src": "11664:13:30",
                      "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": 12183,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11664:22:30",
                    "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": 12173,
                  "id": 12184,
                  "nodeType": "Return",
                  "src": "11657:29:30"
                }
              ]
            },
            "documentation": {
              "id": 12162,
              "nodeType": "StructuredDocumentation",
              "src": "11407:56:30",
              "text": " @dev See {ICreatorCore-getRoyalties}."
            },
            "functionSelector": "bb3bafd6",
            "id": 12186,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRoyalties",
            "nameLocation": "11477:12:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12166,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11529:8:30"
            },
            "parameters": {
              "id": 12165,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12164,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "11498:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12186,
                  "src": "11490:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12163,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11490:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11489:17:30"
            },
            "returnParameters": {
              "id": 12173,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12169,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12186,
                  "src": "11547:24:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12167,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11547:15:30",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 12168,
                    "nodeType": "ArrayTypeName",
                    "src": "11547:17:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12172,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12186,
                  "src": "11573:16:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12170,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11573:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 12171,
                    "nodeType": "ArrayTypeName",
                    "src": "11573:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11546:44:30"
            },
            "scope": 12368,
            "src": "11468:225:30",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15173
            ],
            "body": {
              "id": 12210,
              "nodeType": "Block",
              "src": "11873:102:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 12201,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12189,
                            "src": "11899:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12200,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "11891:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12202,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11891:16:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 12203,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11909:19:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 12199,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11883:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12204,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11883:46:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12205,
                  "nodeType": "ExpressionStatement",
                  "src": "11883:46:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12207,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12189,
                        "src": "11960:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12206,
                      "name": "_getRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13169,
                      "src": "11946:13:30",
                      "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": 12208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11946:22:30",
                    "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": 12198,
                  "id": 12209,
                  "nodeType": "Return",
                  "src": "11939:29:30"
                }
              ]
            },
            "documentation": {
              "id": 12187,
              "nodeType": "StructuredDocumentation",
              "src": "11699:51:30",
              "text": " @dev See {ICreatorCore-getFees}."
            },
            "functionSelector": "d5a06d4c",
            "id": 12211,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFees",
            "nameLocation": "11764:7:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12191,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11811:8:30"
            },
            "parameters": {
              "id": 12190,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12189,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "11780:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12211,
                  "src": "11772:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12188,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11772:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11771:17:30"
            },
            "returnParameters": {
              "id": 12198,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12194,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12211,
                  "src": "11829:24:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12192,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11829:15:30",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 12193,
                    "nodeType": "ArrayTypeName",
                    "src": "11829:17:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12197,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12211,
                  "src": "11855:16:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12195,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11855:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 12196,
                    "nodeType": "ArrayTypeName",
                    "src": "11855:9:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11828:44:30"
            },
            "scope": 12368,
            "src": "11755:220:30",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15154
            ],
            "body": {
              "id": 12232,
              "nodeType": "Block",
              "src": "12155:109:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 12223,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12214,
                            "src": "12181:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12222,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "12173:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12224,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12173:16:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 12225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12191:19:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 12221,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "12165:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12165:46:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12227,
                  "nodeType": "ExpressionStatement",
                  "src": "12165:46:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12229,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12214,
                        "src": "12249:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12228,
                      "name": "_getRoyaltyReceivers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13186,
                      "src": "12228:20:30",
                      "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": 12230,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12228:29:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                      "typeString": "address payable[] memory"
                    }
                  },
                  "functionReturnParameters": 12220,
                  "id": 12231,
                  "nodeType": "Return",
                  "src": "12221:36:30"
                }
              ]
            },
            "documentation": {
              "id": 12212,
              "nodeType": "StructuredDocumentation",
              "src": "11981:60:30",
              "text": " @dev See {ICreatorCore-getFeeRecipients}."
            },
            "functionSelector": "b9c4d9fb",
            "id": 12233,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeRecipients",
            "nameLocation": "12055:16:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12216,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12111:8:30"
            },
            "parameters": {
              "id": 12215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12214,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12080:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12233,
                  "src": "12072:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12213,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12072:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12071:17:30"
            },
            "returnParameters": {
              "id": 12220,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12219,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12233,
                  "src": "12129:24:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12217,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12129:15:30",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 12218,
                    "nodeType": "ArrayTypeName",
                    "src": "12129:17:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12128:26:30"
            },
            "scope": 12368,
            "src": "12046:218:30",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15162
            ],
            "body": {
              "id": 12254,
              "nodeType": "Block",
              "src": "12419:103:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 12245,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12236,
                            "src": "12445:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12244,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "12437:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12246,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12437:16:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 12247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12455:19:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 12243,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "12429:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12248,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12429:46:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12249,
                  "nodeType": "ExpressionStatement",
                  "src": "12429:46:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12251,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12236,
                        "src": "12507:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12250,
                      "name": "_getRoyaltyBPS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13203,
                      "src": "12492:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (uint256[] memory)"
                      }
                    },
                    "id": 12252,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12492:23:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 12242,
                  "id": 12253,
                  "nodeType": "Return",
                  "src": "12485:30:30"
                }
              ]
            },
            "documentation": {
              "id": 12234,
              "nodeType": "StructuredDocumentation",
              "src": "12270:53:30",
              "text": " @dev See {ICreatorCore-getFeeBps}."
            },
            "functionSelector": "0ebd4c7f",
            "id": 12255,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeBps",
            "nameLocation": "12337:9:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12238,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12386:8:30"
            },
            "parameters": {
              "id": 12237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12236,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12355:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12255,
                  "src": "12347:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12235,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12347:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12346:17:30"
            },
            "returnParameters": {
              "id": 12242,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12241,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12255,
                  "src": "12404:13:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12239,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "12404:4:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 12240,
                    "nodeType": "ArrayTypeName",
                    "src": "12404:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12403:15:30"
            },
            "scope": 12368,
            "src": "12328:194:30",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15184
            ],
            "body": {
              "id": 12280,
              "nodeType": "Block",
              "src": "12703:111:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 12270,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12258,
                            "src": "12729:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12269,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "12721:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12271,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12721:16:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 12272,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12739:19:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 12268,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "12713:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12273,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12713:46:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12274,
                  "nodeType": "ExpressionStatement",
                  "src": "12713:46:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12276,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12258,
                        "src": "12792:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 12277,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12260,
                        "src": "12801:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12275,
                      "name": "_getRoyaltyInfo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13258,
                      "src": "12776:15:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_address_$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view returns (address,uint256)"
                      }
                    },
                    "id": 12278,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12776:31:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
                      "typeString": "tuple(address,uint256)"
                    }
                  },
                  "functionReturnParameters": 12267,
                  "id": 12279,
                  "nodeType": "Return",
                  "src": "12769:38:30"
                }
              ]
            },
            "documentation": {
              "id": 12256,
              "nodeType": "StructuredDocumentation",
              "src": "12532:55:30",
              "text": " @dev See {ICreatorCore-royaltyInfo}."
            },
            "functionSelector": "2a55205a",
            "id": 12281,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "royaltyInfo",
            "nameLocation": "12601:11:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12262,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12667:8:30"
            },
            "parameters": {
              "id": 12261,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12258,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12621:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12281,
                  "src": "12613:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12257,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12613:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12260,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "12638:5:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12281,
                  "src": "12630:13:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12259,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12630:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12612:32:30"
            },
            "returnParameters": {
              "id": 12267,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12264,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12281,
                  "src": "12685:7:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12263,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12685:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12266,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12281,
                  "src": "12694:7:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12265,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12694:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12684:18:30"
            },
            "scope": 12368,
            "src": "12592:222:30",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1580
            ],
            "body": {
              "id": 12301,
              "nodeType": "Block",
              "src": "12969:98:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 12292,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12284,
                            "src": "12995:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12291,
                          "name": "_exists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20175,
                          "src": "12987:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12293,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12987:16:30",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f6e6578697374656e7420746f6b656e",
                        "id": 12294,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13005:19:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        },
                        "value": "Nonexistent token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7003d7428552fca483d8ae514dcdd858508b192cded55eb84b078a27247ab7e4",
                          "typeString": "literal_string \"Nonexistent token\""
                        }
                      ],
                      "id": 12290,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "12979:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12295,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12979:46:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12296,
                  "nodeType": "ExpressionStatement",
                  "src": "12979:46:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12298,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12284,
                        "src": "13052:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12297,
                      "name": "_tokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13017,
                      "src": "13042:9:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (uint256) view returns (string memory)"
                      }
                    },
                    "id": 12299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13042:18:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 12289,
                  "id": 12300,
                  "nodeType": "Return",
                  "src": "13035:25:30"
                }
              ]
            },
            "documentation": {
              "id": 12282,
              "nodeType": "StructuredDocumentation",
              "src": "12821:55:30",
              "text": " @dev See {IERC721Metadata-tokenURI}."
            },
            "functionSelector": "c87b56dd",
            "id": 12302,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenURI",
            "nameLocation": "12890:8:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12286,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12936:8:30"
            },
            "parameters": {
              "id": 12285,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12284,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12907:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12302,
                  "src": "12899:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12283,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12899:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12898:17:30"
            },
            "returnParameters": {
              "id": 12289,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12288,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12302,
                  "src": "12954:13:30",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12287,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "12954:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12953:15:30"
            },
            "scope": 12368,
            "src": "12881:186:30",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15190
            ],
            "body": {
              "id": 12315,
              "nodeType": "Block",
              "src": "13219:51:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12312,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12305,
                        "src": "13253:9:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 12311,
                      "name": "_setApproveTransferBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13454,
                      "src": "13229:23:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 12313,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13229:34:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12314,
                  "nodeType": "ExpressionStatement",
                  "src": "13229:34:30"
                }
              ]
            },
            "documentation": {
              "id": 12303,
              "nodeType": "StructuredDocumentation",
              "src": "13073:62:30",
              "text": " @dev See {ICreatorCore-setApproveTransfer}."
            },
            "functionSelector": "596798ad",
            "id": 12316,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 12309,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 12308,
                  "name": "adminRequired",
                  "nameLocations": [
                    "13205:13:30"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "13205:13:30"
                },
                "nodeType": "ModifierInvocation",
                "src": "13205:13:30"
              }
            ],
            "name": "setApproveTransfer",
            "nameLocation": "13149:18:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12307,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13196:8:30"
            },
            "parameters": {
              "id": 12306,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12305,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "13176:9:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12316,
                  "src": "13168:17:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12304,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13168:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13167:19:30"
            },
            "returnParameters": {
              "id": 12310,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13219:0:30"
            },
            "scope": 12368,
            "src": "13140:130:30",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13472
            ],
            "body": {
              "id": 12347,
              "nodeType": "Block",
              "src": "13358:175:30",
              "statements": [
                {
                  "assignments": [
                    12325
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12325,
                      "mutability": "mutable",
                      "name": "extensionIndex",
                      "nameLocation": "13375:14:30",
                      "nodeType": "VariableDeclaration",
                      "scope": 12347,
                      "src": "13368:21:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      },
                      "typeName": {
                        "id": 12324,
                        "name": "uint16",
                        "nodeType": "ElementaryTypeName",
                        "src": "13368:6:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 12333,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "baseExpression": {
                            "id": 12328,
                            "name": "_tokenData",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19837,
                            "src": "13399:10:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TokenData_$19832_storage_$",
                              "typeString": "mapping(uint256 => struct ERC721Core.TokenData storage ref)"
                            }
                          },
                          "id": 12330,
                          "indexExpression": {
                            "id": 12329,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12318,
                            "src": "13410:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13399:19:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenData_$19832_storage",
                            "typeString": "struct ERC721Core.TokenData storage ref"
                          }
                        },
                        "id": 12331,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "13419:4:30",
                        "memberName": "data",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19831,
                        "src": "13399:24:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      ],
                      "id": 12327,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13392:6:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint16_$",
                        "typeString": "type(uint16)"
                      },
                      "typeName": {
                        "id": 12326,
                        "name": "uint16",
                        "nodeType": "ElementaryTypeName",
                        "src": "13392:6:30",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 12332,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13392:32:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13368:56:30"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    },
                    "id": 12336,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 12334,
                      "name": "extensionIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12325,
                      "src": "13438:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 12335,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13456:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13438:19:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 12342,
                  "nodeType": "IfStatement",
                  "src": "13434:42:30",
                  "trueBody": {
                    "expression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 12339,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13474:1:30",
                          "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": 12338,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "13466:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 12337,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "13466:7:30",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 12340,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13466:10:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "functionReturnParameters": 12323,
                    "id": 12341,
                    "nodeType": "Return",
                    "src": "13459:17:30"
                  }
                },
                {
                  "expression": {
                    "baseExpression": {
                      "id": 12343,
                      "name": "_indexToExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13895,
                      "src": "13493:17:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint16_$_t_address_$",
                        "typeString": "mapping(uint16 => address)"
                      }
                    },
                    "id": 12345,
                    "indexExpression": {
                      "id": 12344,
                      "name": "extensionIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12325,
                      "src": "13511:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13493:33:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 12323,
                  "id": 12346,
                  "nodeType": "Return",
                  "src": "13486:40:30"
                }
              ]
            },
            "id": 12348,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_tokenExtension",
            "nameLocation": "13285:15:30",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12320,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13332:8:30"
            },
            "parameters": {
              "id": 12319,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12318,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13309:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12348,
                  "src": "13301:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12317,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13301:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13300:17:30"
            },
            "returnParameters": {
              "id": 12323,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12322,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12348,
                  "src": "13349:7:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12321,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13349:7:30",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13348:9:30"
            },
            "scope": 12368,
            "src": "13276:257:30",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15406
            ],
            "body": {
              "id": 12366,
              "nodeType": "Block",
              "src": "13670:62:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "id": 12363,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "baseExpression": {
                              "id": 12358,
                              "name": "_tokenData",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19837,
                              "src": "13694:10:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TokenData_$19832_storage_$",
                                "typeString": "mapping(uint256 => struct ERC721Core.TokenData storage ref)"
                              }
                            },
                            "id": 12360,
                            "indexExpression": {
                              "id": 12359,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12351,
                              "src": "13705:7:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "13694:19:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_TokenData_$19832_storage",
                              "typeString": "struct ERC721Core.TokenData storage ref"
                            }
                          },
                          "id": 12361,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "13714:4:30",
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19831,
                          "src": "13694:24:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "3136",
                          "id": 12362,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13722:2:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_16_by_1",
                            "typeString": "int_const 16"
                          },
                          "value": "16"
                        },
                        "src": "13694:30:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      ],
                      "id": 12357,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13687:6:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint80_$",
                        "typeString": "type(uint80)"
                      },
                      "typeName": {
                        "id": 12356,
                        "name": "uint80",
                        "nodeType": "ElementaryTypeName",
                        "src": "13687:6:30",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 12364,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13687:38:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "functionReturnParameters": 12355,
                  "id": 12365,
                  "nodeType": "Return",
                  "src": "13680:45:30"
                }
              ]
            },
            "documentation": {
              "id": 12349,
              "nodeType": "StructuredDocumentation",
              "src": "13539:59:30",
              "text": " @dev See {IERC721CreatorCore-tokenData}."
            },
            "functionSelector": "b4b5b48f",
            "id": 12367,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenData",
            "nameLocation": "13612:9:30",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12352,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12351,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13630:7:30",
                  "nodeType": "VariableDeclaration",
                  "scope": 12367,
                  "src": "13622:15:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12350,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13622:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13621:17:30"
            },
            "returnParameters": {
              "id": 12355,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12354,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12367,
                  "src": "13662:6:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 12353,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "13662:6:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13661:8:30"
            },
            "scope": 12368,
            "src": "13603:129:30",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 12369,
        "src": "343:13391:30",
        "usedErrors": []
      }
    ],
    "src": "33:13701:30"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.723Z",
  "devdoc": {
    "details": "ERC721Creator implementation (using transparent upgradeable proxy)",
    "events": {
      "Approval(address,address,uint256)": {
        "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token."
      },
      "ApprovalForAll(address,address,bool)": {
        "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."
      },
      "Initialized(uint8)": {
        "details": "Triggered when the contract has been initialized or reinitialized."
      },
      "Transfer(address,address,uint256)": {
        "details": "Emitted when `tokenId` token is transferred from `from` to `to`."
      }
    },
    "kind": "dev",
    "methods": {
      "approve(address,uint256)": {
        "details": "See {IERC721-approve}."
      },
      "approveAdmin(address)": {
        "details": "See {IAdminControl-approveAdmin}."
      },
      "balanceOf(address)": {
        "details": "See {IERC721-balanceOf}."
      },
      "blacklistExtension(address)": {
        "details": "See {ICreatorCore-blacklistExtension}."
      },
      "burn(uint256)": {
        "details": "See {IERC721CreatorCore-burn}."
      },
      "getAdmins()": {
        "details": "See {IAdminControl-getAdmins}."
      },
      "getApproveTransfer()": {
        "details": "See {ICreatorCore-getApproveTransfer}."
      },
      "getApproved(uint256)": {
        "details": "See {IERC721-getApproved}."
      },
      "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 {IERC721-isApprovedForAll}."
      },
      "mintBase(address)": {
        "details": "See {IERC721CreatorCore-mintBase}."
      },
      "mintBase(address,string)": {
        "details": "See {IERC721CreatorCore-mintBase}."
      },
      "mintBaseBatch(address,string[])": {
        "details": "See {IERC721CreatorCore-mintBaseBatch}."
      },
      "mintBaseBatch(address,uint16)": {
        "details": "See {IERC721CreatorCore-mintBaseBatch}."
      },
      "mintExtension(address)": {
        "details": "See {IERC721CreatorCore-mintExtension}."
      },
      "mintExtension(address,string)": {
        "details": "See {IERC721CreatorCore-mintExtension}."
      },
      "mintExtension(address,uint80)": {
        "details": "See {IERC721CreatorCore-mintExtension}."
      },
      "mintExtensionBatch(address,string[])": {
        "details": "See {IERC721CreatorCore-mintExtensionBatch}."
      },
      "mintExtensionBatch(address,uint16)": {
        "details": "See {IERC721CreatorCore-mintExtensionBatch}."
      },
      "mintExtensionBatch(address,uint80[])": {
        "details": "See {IERC721CreatorCore-mintExtensionBatch}."
      },
      "name()": {
        "details": "See {IERC721Metadata-name}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "ownerOf(uint256)": {
        "details": "See {IERC721-ownerOf}."
      },
      "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}."
      },
      "safeTransferFrom(address,address,uint256)": {
        "details": "See {IERC721-safeTransferFrom}."
      },
      "safeTransferFrom(address,address,uint256,bytes)": {
        "details": "See {IERC721-safeTransferFrom}."
      },
      "setApprovalForAll(address,bool)": {
        "details": "See {IERC721-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}."
      },
      "symbol()": {
        "details": "See {IERC721Metadata-symbol}."
      },
      "tokenData(uint256)": {
        "details": "See {IERC721CreatorCore-tokenData}."
      },
      "tokenExtension(uint256)": {
        "details": "See {IERC721CreatorCore-tokenExtension}."
      },
      "tokenURI(uint256)": {
        "details": "See {IERC721Metadata-tokenURI}."
      },
      "transferFrom(address,address,uint256)": {
        "details": "See {IERC721-transferFrom}."
      },
      "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}."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "initialize(string,string)": {
        "notice": "Initializer"
      }
    },
    "version": 1
  }
}