{
  "contractName": "CreatorExtensionBasic",
  "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": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "approveAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAdmins",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "admins",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "isAdmin",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "revokeAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "identical",
          "type": "bool"
        }
      ],
      "name": "setBaseTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setBaseTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "prefix",
          "type": "string"
        }
      ],
      "name": "setTokenURIPrefix",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AdminApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AdminRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"approveAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAdmins\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"revokeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"identical\",\"type\":\"bool\"}],\"name\":\"setBaseTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setBaseTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"prefix\",\"type\":\"string\"}],\"name\":\"setTokenURIPrefix\",\"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\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Provides functions to set token uri's\",\"kind\":\"dev\",\"methods\":{\"approveAdmin(address)\":{\"details\":\"See {IAdminControl-approveAdmin}.\"},\"getAdmins()\":{\"details\":\"See {IAdminControl-getAdmins}.\"},\"isAdmin(address)\":{\"details\":\"See {IAdminControl-isAdmin}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"revokeAdmin(address)\":{\"details\":\"See {IAdminControl-revokeAdmin}.\"},\"setBaseTokenURI(address,string)\":{\"details\":\"See {ICreatorExtensionBasic-setBaseTokenURI}.\"},\"setBaseTokenURI(address,string,bool)\":{\"details\":\"See {ICreatorExtensionBasic-setBaseTokenURI}.\"},\"setTokenURI(address,uint256,string)\":{\"details\":\"See {ICreatorExtensionBasic-setTokenURI}.\"},\"setTokenURI(address,uint256[],string[])\":{\"details\":\"See {ICreatorExtensionBasic-setTokenURI}.\"},\"setTokenURIPrefix(address,string)\":{\"details\":\"See {ICreatorExtensionBasic-setTokenURIPrefix}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/extensions/CreatorExtensionBasic.sol\":\"CreatorExtensionBasic\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":25},\"remappings\":[]},\"sources\":{\"@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol\":{\"keccak256\":\"0xaed5e7784e33745ab1b16f1d87b22084a8b25d531c1dcb8dc41fc2a89e2617da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44837a9cc639062b2d7424a10e9d579b8d3a9bc1cefede2cfbb917bee8f452ae\",\"dweb:/ipfs/QmburkqmRDZYWjKPRUynhdfkAfP5QDKcXH4WCbH1JC8UDq\"]},\"@manifoldxyz/libraries-solidity/contracts/access/IAdminControl.sol\":{\"keccak256\":\"0x7cc2e4e7d9052532f445e62ec1fa2f05cc0f5d1d8ee1fea913b43a132277bf2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://266618317d0654fe209b5450b8b5afa3a4a8d41294a2b37ddbae540099859887\",\"dweb:/ipfs/QmYksDqoxhachoqZquXGtjfiuAWJ1rxAKLtUYPL3YboBkE\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@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/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"project:/contracts/core/ICreatorCore.sol\":{\"keccak256\":\"0x6bdcb757953594d3a259f1d68ec3d208ca42dba02115f08a6e32e2936ccb0349\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd1853dabcd57eb9b735b3991cf59259cd28cdeca1353495b5c59dc0db2d85df\",\"dweb:/ipfs/QmfJLFZ7RoMvdR7kJLR7QmqreS1x5VNJSa7xvjVsC4mXte\"]},\"project:/contracts/extensions/CreatorExtension.sol\":{\"keccak256\":\"0x36fe8d17e2364675e2bdd3fc6539976613cac057db580f3d43a202865f7f5cc9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a6f47309d37ef8dcc76802ab2c8a1500b2160099c9e368f6ac0bf05175e0b97\",\"dweb:/ipfs/QmbyMW37myT5wuQuAjTcna7AuEn8b5EgUh2sPqR9VSTF3B\"]},\"project:/contracts/extensions/CreatorExtensionBasic.sol\":{\"keccak256\":\"0x52c23a33eac9e48136dd50b34095faf86ac62d8e979d030d9050c635ab9619a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://589e312efc098997379a8c133b79dde68cd9e14a6f261a8ef4bb7e24a7cc38a5\",\"dweb:/ipfs/Qmasss69Fxvcpe55jjhMgK9XADKzuKzqLq6ByZYWNbzVgs\"]},\"project:/contracts/extensions/ICreatorExtensionBasic.sol\":{\"keccak256\":\"0x2cedecb4e700effb573513e340a7fc13073452419d690ed42d81870debcdbca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc82e046ee568bcdc13052b78f3a56e78f4cc66ce7ea46ac34ff437dbb800f61\",\"dweb:/ipfs/Qmedo8matTotr8fbk8dsbUPAU43gXWUJYZnWia7M7eCqKc\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/// @author: manifold.xyz\n\nimport \"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\";\nimport \"@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol\";\n\nimport \"../core/ICreatorCore.sol\";\nimport \"./ICreatorExtensionBasic.sol\";\nimport \"./CreatorExtension.sol\";\n\n/**\n * @dev Provides functions to set token uri's\n */\nabstract contract CreatorExtensionBasic is AdminControl, CreatorExtension, ICreatorExtensionBasic {\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(AdminControl, CreatorExtension, IERC165) returns (bool) {\n        return interfaceId == type(ICreatorExtensionBasic).interfaceId\n            || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {ICreatorExtensionBasic-setBaseTokenURI}.\n     */\n    function setBaseTokenURI(address creator, string calldata uri) external override adminRequired {\n        require(ERC165Checker.supportsInterface(creator, type(ICreatorCore).interfaceId), \"Requires creator to implement ICreatorCore\");\n        ICreatorCore(creator).setBaseTokenURIExtension(uri);\n    }\n\n    /**\n     * @dev See {ICreatorExtensionBasic-setBaseTokenURI}.\n     */\n    function setBaseTokenURI(address creator, string calldata uri, bool identical) external override adminRequired {\n        require(ERC165Checker.supportsInterface(creator, type(ICreatorCore).interfaceId), \"Requires creator to implement CreatorCore\");\n        ICreatorCore(creator).setBaseTokenURIExtension(uri, identical);\n    }\n\n    /**\n     * @dev See {ICreatorExtensionBasic-setTokenURI}.\n     */\n    function setTokenURI(address creator, uint256 tokenId, string calldata uri) external override adminRequired {\n        require(ERC165Checker.supportsInterface(creator, type(ICreatorCore).interfaceId), \"Requires creator to implement CreatorCore\");\n        ICreatorCore(creator).setTokenURIExtension(tokenId, uri);\n    }\n\n    /**\n     * @dev See {ICreatorExtensionBasic-setTokenURI}.\n     */\n    function setTokenURI(address creator, uint256[] calldata tokenIds, string[] calldata uris) external override adminRequired {\n        require(ERC165Checker.supportsInterface(creator, type(ICreatorCore).interfaceId), \"Requires creator to implement CreatorCore\");\n        ICreatorCore(creator).setTokenURIExtension(tokenIds, uris);\n    }\n\n    /**\n     * @dev See {ICreatorExtensionBasic-setTokenURIPrefix}.\n     */\n    function setTokenURIPrefix(address creator, string calldata prefix) external override adminRequired {\n        require(ERC165Checker.supportsInterface(creator, type(ICreatorCore).interfaceId), \"Requires creator to implement CreatorCore\");\n        ICreatorCore(creator).setTokenURIPrefixExtension(prefix);\n    }\n\n\n}",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/extensions/CreatorExtensionBasic.sol",
  "ast": {
    "absolutePath": "project:/contracts/extensions/CreatorExtensionBasic.sol",
    "exportedSymbols": {
      "AdminControl": [
        185
      ],
      "Context": [
        1933
      ],
      "CreatorExtension": [
        15525
      ],
      "CreatorExtensionBasic": [
        15731
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "EnumerableSet": [
        3816
      ],
      "IAdminControl": [
        417
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionBasic": [
        16553
      ],
      "IERC165": [
        2338
      ],
      "Ownable": [
        1157
      ]
    },
    "id": 15732,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 15527,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:42"
      },
      {
        "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol",
        "file": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol",
        "id": 15528,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 15732,
        "sourceUnit": 2327,
        "src": "85:71:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol",
        "file": "@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol",
        "id": 15529,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 15732,
        "sourceUnit": 186,
        "src": "157:75:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/core/ICreatorCore.sol",
        "file": "../core/ICreatorCore.sol",
        "id": 15530,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 15732,
        "sourceUnit": 15198,
        "src": "234:34:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/extensions/ICreatorExtensionBasic.sol",
        "file": "./ICreatorExtensionBasic.sol",
        "id": 15531,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 15732,
        "sourceUnit": 16554,
        "src": "269:38:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/extensions/CreatorExtension.sol",
        "file": "./CreatorExtension.sol",
        "id": 15532,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 15732,
        "sourceUnit": 15526,
        "src": "308:32:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 15534,
              "name": "AdminControl",
              "nameLocations": [
                "439:12:42"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 185,
              "src": "439:12:42"
            },
            "id": 15535,
            "nodeType": "InheritanceSpecifier",
            "src": "439:12:42"
          },
          {
            "baseName": {
              "id": 15536,
              "name": "CreatorExtension",
              "nameLocations": [
                "453:16:42"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 15525,
              "src": "453:16:42"
            },
            "id": 15537,
            "nodeType": "InheritanceSpecifier",
            "src": "453:16:42"
          },
          {
            "baseName": {
              "id": 15538,
              "name": "ICreatorExtensionBasic",
              "nameLocations": [
                "471:22:42"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 16553,
              "src": "471:22:42"
            },
            "id": 15539,
            "nodeType": "InheritanceSpecifier",
            "src": "471:22:42"
          }
        ],
        "canonicalName": "CreatorExtensionBasic",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 15533,
          "nodeType": "StructuredDocumentation",
          "src": "342:53:42",
          "text": " @dev Provides functions to set token uri's"
        },
        "fullyImplemented": true,
        "id": 15731,
        "linearizedBaseContracts": [
          15731,
          16553,
          15525,
          185,
          2132,
          417,
          2338,
          1157,
          1933
        ],
        "name": "CreatorExtensionBasic",
        "nameLocation": "414:21:42",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "baseFunctions": [
              42,
              2337,
              15524
            ],
            "body": {
              "id": 15563,
              "nodeType": "Block",
              "src": "693:131:42",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 15561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "id": 15556,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 15551,
                        "name": "interfaceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15542,
                        "src": "710:11:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "expression": {
                          "arguments": [
                            {
                              "id": 15553,
                              "name": "ICreatorExtensionBasic",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16553,
                              "src": "730:22:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ICreatorExtensionBasic_$16553_$",
                                "typeString": "type(contract ICreatorExtensionBasic)"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_type$_t_contract$_ICreatorExtensionBasic_$16553_$",
                                "typeString": "type(contract ICreatorExtensionBasic)"
                              }
                            ],
                            "id": 15552,
                            "name": "type",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967269,
                            "src": "725:4:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 15554,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "725:28:42",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_meta_type_t_contract$_ICreatorExtensionBasic_$16553",
                            "typeString": "type(contract ICreatorExtensionBasic)"
                          }
                        },
                        "id": 15555,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "754:11:42",
                        "memberName": "interfaceId",
                        "nodeType": "MemberAccess",
                        "src": "725:40:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "src": "710:55:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 15559,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15542,
                          "src": "805:11:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 15557,
                          "name": "super",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967271,
                          "src": "781:5:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_super$_CreatorExtensionBasic_$15731_$",
                            "typeString": "type(contract super CreatorExtensionBasic)"
                          }
                        },
                        "id": 15558,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "787:17:42",
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 15524,
                        "src": "781:23:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 15560,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "781:36:42",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "710:107:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 15550,
                  "id": 15562,
                  "nodeType": "Return",
                  "src": "703:114:42"
                }
              ]
            },
            "documentation": {
              "id": 15540,
              "nodeType": "StructuredDocumentation",
              "src": "500:56:42",
              "text": " @dev See {IERC165-supportsInterface}."
            },
            "functionSelector": "01ffc9a7",
            "id": 15564,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nameLocation": "570:17:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 15547,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 15544,
                  "name": "AdminControl",
                  "nameLocations": [
                    "637:12:42"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 185,
                  "src": "637:12:42"
                },
                {
                  "id": 15545,
                  "name": "CreatorExtension",
                  "nameLocations": [
                    "651:16:42"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 15525,
                  "src": "651:16:42"
                },
                {
                  "id": 15546,
                  "name": "IERC165",
                  "nameLocations": [
                    "669:7:42"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2338,
                  "src": "669:7:42"
                }
              ],
              "src": "628:49:42"
            },
            "parameters": {
              "id": 15543,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15542,
                  "mutability": "mutable",
                  "name": "interfaceId",
                  "nameLocation": "595:11:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15564,
                  "src": "588:18:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 15541,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "588:6:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "587:20:42"
            },
            "returnParameters": {
              "id": 15550,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15549,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 15564,
                  "src": "687:4:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15548,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "687:4:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "686:6:42"
            },
            "scope": 15731,
            "src": "561:263:42",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              16512
            ],
            "body": {
              "id": 15594,
              "nodeType": "Block",
              "src": "999:205:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 15578,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15567,
                            "src": "1049:7:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 15580,
                                  "name": "ICreatorCore",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 15197,
                                  "src": "1063:12:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                                    "typeString": "type(contract ICreatorCore)"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                                    "typeString": "type(contract ICreatorCore)"
                                  }
                                ],
                                "id": 15579,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "1058:4:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 15581,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1058:18:42",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_contract$_ICreatorCore_$15197",
                                "typeString": "type(contract ICreatorCore)"
                              }
                            },
                            "id": 15582,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "1077:11:42",
                            "memberName": "interfaceId",
                            "nodeType": "MemberAccess",
                            "src": "1058:30:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 15576,
                            "name": "ERC165Checker",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2326,
                            "src": "1017:13:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC165Checker_$2326_$",
                              "typeString": "type(library ERC165Checker)"
                            }
                          },
                          "id": 15577,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1031:17:42",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2182,
                          "src": "1017:31:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (address,bytes4) view returns (bool)"
                          }
                        },
                        "id": 15583,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1017:72:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "52657175697265732063726561746f7220746f20696d706c656d656e74204943726561746f72436f7265",
                        "id": 15584,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1091:44:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5008840e1de1507df2e3a620d2dc14b2ab0df7e1a9ea23315157a6dc120997fd",
                          "typeString": "literal_string \"Requires creator to implement ICreatorCore\""
                        },
                        "value": "Requires creator to implement ICreatorCore"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5008840e1de1507df2e3a620d2dc14b2ab0df7e1a9ea23315157a6dc120997fd",
                          "typeString": "literal_string \"Requires creator to implement ICreatorCore\""
                        }
                      ],
                      "id": 15575,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1009:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 15585,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1009:127:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15586,
                  "nodeType": "ExpressionStatement",
                  "src": "1009:127:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 15591,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15569,
                        "src": "1193:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 15588,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15567,
                            "src": "1159:7:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 15587,
                          "name": "ICreatorCore",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15197,
                          "src": "1146:12:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                            "typeString": "type(contract ICreatorCore)"
                          }
                        },
                        "id": 15589,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1146:21:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ICreatorCore_$15197",
                          "typeString": "contract ICreatorCore"
                        }
                      },
                      "id": 15590,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1168:24:42",
                      "memberName": "setBaseTokenURIExtension",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 15016,
                      "src": "1146:46:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) external"
                      }
                    },
                    "id": 15592,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1146:51:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15593,
                  "nodeType": "ExpressionStatement",
                  "src": "1146:51:42"
                }
              ]
            },
            "documentation": {
              "id": 15565,
              "nodeType": "StructuredDocumentation",
              "src": "830:69:42",
              "text": " @dev See {ICreatorExtensionBasic-setBaseTokenURI}."
            },
            "functionSelector": "d8a73fdb",
            "id": 15595,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 15573,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 15572,
                  "name": "adminRequired",
                  "nameLocations": [
                    "985:13:42"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "985:13:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "985:13:42"
              }
            ],
            "name": "setBaseTokenURI",
            "nameLocation": "913:15:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 15571,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "976:8:42"
            },
            "parameters": {
              "id": 15570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15567,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "937:7:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15595,
                  "src": "929:15:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15566,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "929:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15569,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "962:3:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15595,
                  "src": "946:19:42",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 15568,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "946:6:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "928:38:42"
            },
            "returnParameters": {
              "id": 15574,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "999:0:42"
            },
            "scope": 15731,
            "src": "904:300:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              16522
            ],
            "body": {
              "id": 15628,
              "nodeType": "Block",
              "src": "1395:215:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 15611,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15598,
                            "src": "1445:7:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 15613,
                                  "name": "ICreatorCore",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 15197,
                                  "src": "1459:12:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                                    "typeString": "type(contract ICreatorCore)"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                                    "typeString": "type(contract ICreatorCore)"
                                  }
                                ],
                                "id": 15612,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "1454:4:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 15614,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1454:18:42",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_contract$_ICreatorCore_$15197",
                                "typeString": "type(contract ICreatorCore)"
                              }
                            },
                            "id": 15615,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "1473:11:42",
                            "memberName": "interfaceId",
                            "nodeType": "MemberAccess",
                            "src": "1454:30:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 15609,
                            "name": "ERC165Checker",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2326,
                            "src": "1413:13:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC165Checker_$2326_$",
                              "typeString": "type(library ERC165Checker)"
                            }
                          },
                          "id": 15610,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1427:17:42",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2182,
                          "src": "1413:31:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (address,bytes4) view returns (bool)"
                          }
                        },
                        "id": 15616,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1413:72:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "52657175697265732063726561746f7220746f20696d706c656d656e742043726561746f72436f7265",
                        "id": 15617,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1487:43:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a9e30b95a1848f4603ebfb567134faff2d36aca09b34ea40454f03c2999717db",
                          "typeString": "literal_string \"Requires creator to implement CreatorCore\""
                        },
                        "value": "Requires creator to implement CreatorCore"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a9e30b95a1848f4603ebfb567134faff2d36aca09b34ea40454f03c2999717db",
                          "typeString": "literal_string \"Requires creator to implement CreatorCore\""
                        }
                      ],
                      "id": 15608,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1405:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 15618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1405:126:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15619,
                  "nodeType": "ExpressionStatement",
                  "src": "1405:126:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 15624,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15600,
                        "src": "1588:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 15625,
                        "name": "identical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15602,
                        "src": "1593:9:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 15621,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15598,
                            "src": "1554:7:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 15620,
                          "name": "ICreatorCore",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15197,
                          "src": "1541:12:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                            "typeString": "type(contract ICreatorCore)"
                          }
                        },
                        "id": 15622,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1541:21:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ICreatorCore_$15197",
                          "typeString": "contract ICreatorCore"
                        }
                      },
                      "id": 15623,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1563:24:42",
                      "memberName": "setBaseTokenURIExtension",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 15024,
                      "src": "1541:46:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string memory,bool) external"
                      }
                    },
                    "id": 15626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1541:62:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15627,
                  "nodeType": "ExpressionStatement",
                  "src": "1541:62:42"
                }
              ]
            },
            "documentation": {
              "id": 15596,
              "nodeType": "StructuredDocumentation",
              "src": "1210:69:42",
              "text": " @dev See {ICreatorExtensionBasic-setBaseTokenURI}."
            },
            "functionSelector": "4c5cfbf2",
            "id": 15629,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 15606,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 15605,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1381:13:42"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "1381:13:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "1381:13:42"
              }
            ],
            "name": "setBaseTokenURI",
            "nameLocation": "1293:15:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 15604,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1372:8:42"
            },
            "parameters": {
              "id": 15603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15598,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "1317:7:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15629,
                  "src": "1309:15:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15597,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1309:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15600,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "1342:3:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15629,
                  "src": "1326:19:42",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 15599,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1326:6:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15602,
                  "mutability": "mutable",
                  "name": "identical",
                  "nameLocation": "1352:9:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15629,
                  "src": "1347:14:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15601,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1347:4:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1308:54:42"
            },
            "returnParameters": {
              "id": 15607,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1395:0:42"
            },
            "scope": 15731,
            "src": "1284:326:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              16532
            ],
            "body": {
              "id": 15662,
              "nodeType": "Block",
              "src": "1794:209:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 15645,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15632,
                            "src": "1844:7:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 15647,
                                  "name": "ICreatorCore",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 15197,
                                  "src": "1858:12:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                                    "typeString": "type(contract ICreatorCore)"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                                    "typeString": "type(contract ICreatorCore)"
                                  }
                                ],
                                "id": 15646,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "1853:4:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 15648,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1853:18:42",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_contract$_ICreatorCore_$15197",
                                "typeString": "type(contract ICreatorCore)"
                              }
                            },
                            "id": 15649,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "1872:11:42",
                            "memberName": "interfaceId",
                            "nodeType": "MemberAccess",
                            "src": "1853:30:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 15643,
                            "name": "ERC165Checker",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2326,
                            "src": "1812:13:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC165Checker_$2326_$",
                              "typeString": "type(library ERC165Checker)"
                            }
                          },
                          "id": 15644,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1826:17:42",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2182,
                          "src": "1812:31:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (address,bytes4) view returns (bool)"
                          }
                        },
                        "id": 15650,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1812:72:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "52657175697265732063726561746f7220746f20696d706c656d656e742043726561746f72436f7265",
                        "id": 15651,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1886:43:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a9e30b95a1848f4603ebfb567134faff2d36aca09b34ea40454f03c2999717db",
                          "typeString": "literal_string \"Requires creator to implement CreatorCore\""
                        },
                        "value": "Requires creator to implement CreatorCore"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a9e30b95a1848f4603ebfb567134faff2d36aca09b34ea40454f03c2999717db",
                          "typeString": "literal_string \"Requires creator to implement CreatorCore\""
                        }
                      ],
                      "id": 15642,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1804:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 15652,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1804:126:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15653,
                  "nodeType": "ExpressionStatement",
                  "src": "1804:126:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 15658,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15634,
                        "src": "1983:7:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 15659,
                        "name": "uri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15636,
                        "src": "1992:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 15655,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15632,
                            "src": "1953:7:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 15654,
                          "name": "ICreatorCore",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15197,
                          "src": "1940:12:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                            "typeString": "type(contract ICreatorCore)"
                          }
                        },
                        "id": 15656,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1940:21:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ICreatorCore_$15197",
                          "typeString": "contract ICreatorCore"
                        }
                      },
                      "id": 15657,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1962:20:42",
                      "memberName": "setTokenURIExtension",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 15038,
                      "src": "1940:42:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,string memory) external"
                      }
                    },
                    "id": 15660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1940:56:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15661,
                  "nodeType": "ExpressionStatement",
                  "src": "1940:56:42"
                }
              ]
            },
            "documentation": {
              "id": 15630,
              "nodeType": "StructuredDocumentation",
              "src": "1616:65:42",
              "text": " @dev See {ICreatorExtensionBasic-setTokenURI}."
            },
            "functionSelector": "4e5786bf",
            "id": 15663,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 15640,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 15639,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1780:13:42"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "1780:13:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "1780:13:42"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "1695:11:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 15638,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1771:8:42"
            },
            "parameters": {
              "id": 15637,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15632,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "1715:7:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15663,
                  "src": "1707:15:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15631,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1707:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15634,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "1732:7:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15663,
                  "src": "1724:15:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15633,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1724:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15636,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "1757:3:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15663,
                  "src": "1741:19:42",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 15635,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1741:6:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1706:55:42"
            },
            "returnParameters": {
              "id": 15641,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1794:0:42"
            },
            "scope": 15731,
            "src": "1686:317:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              16544
            ],
            "body": {
              "id": 15698,
              "nodeType": "Block",
              "src": "2202:211:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 15681,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15666,
                            "src": "2252:7:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 15683,
                                  "name": "ICreatorCore",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 15197,
                                  "src": "2266:12:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                                    "typeString": "type(contract ICreatorCore)"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                                    "typeString": "type(contract ICreatorCore)"
                                  }
                                ],
                                "id": 15682,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "2261:4:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 15684,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2261:18:42",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_contract$_ICreatorCore_$15197",
                                "typeString": "type(contract ICreatorCore)"
                              }
                            },
                            "id": 15685,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "2280:11:42",
                            "memberName": "interfaceId",
                            "nodeType": "MemberAccess",
                            "src": "2261:30:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 15679,
                            "name": "ERC165Checker",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2326,
                            "src": "2220:13:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC165Checker_$2326_$",
                              "typeString": "type(library ERC165Checker)"
                            }
                          },
                          "id": 15680,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2234:17:42",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2182,
                          "src": "2220:31:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (address,bytes4) view returns (bool)"
                          }
                        },
                        "id": 15686,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2220:72:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "52657175697265732063726561746f7220746f20696d706c656d656e742043726561746f72436f7265",
                        "id": 15687,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2294:43:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a9e30b95a1848f4603ebfb567134faff2d36aca09b34ea40454f03c2999717db",
                          "typeString": "literal_string \"Requires creator to implement CreatorCore\""
                        },
                        "value": "Requires creator to implement CreatorCore"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a9e30b95a1848f4603ebfb567134faff2d36aca09b34ea40454f03c2999717db",
                          "typeString": "literal_string \"Requires creator to implement CreatorCore\""
                        }
                      ],
                      "id": 15678,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "2212:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 15688,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2212:126:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15689,
                  "nodeType": "ExpressionStatement",
                  "src": "2212:126:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 15694,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15669,
                        "src": "2391:8:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 15695,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15672,
                        "src": "2401:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 15691,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15666,
                            "src": "2361:7:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 15690,
                          "name": "ICreatorCore",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15197,
                          "src": "2348:12:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                            "typeString": "type(contract ICreatorCore)"
                          }
                        },
                        "id": 15692,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2348:21:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ICreatorCore_$15197",
                          "typeString": "contract ICreatorCore"
                        }
                      },
                      "id": 15693,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2370:20:42",
                      "memberName": "setTokenURIExtension",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 15048,
                      "src": "2348:42:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (uint256[] memory,string memory[] memory) external"
                      }
                    },
                    "id": 15696,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2348:58:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15697,
                  "nodeType": "ExpressionStatement",
                  "src": "2348:58:42"
                }
              ]
            },
            "documentation": {
              "id": 15664,
              "nodeType": "StructuredDocumentation",
              "src": "2009:65:42",
              "text": " @dev See {ICreatorExtensionBasic-setTokenURI}."
            },
            "functionSelector": "aaa9883b",
            "id": 15699,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 15676,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 15675,
                  "name": "adminRequired",
                  "nameLocations": [
                    "2188:13:42"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "2188:13:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "2188:13:42"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "2088:11:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 15674,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2179:8:42"
            },
            "parameters": {
              "id": 15673,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15666,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "2108:7:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15699,
                  "src": "2100:15:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15665,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2100:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15669,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "2136:8:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15699,
                  "src": "2117:27:42",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15667,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2117:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15668,
                    "nodeType": "ArrayTypeName",
                    "src": "2117:9:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15672,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "2164:4:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15699,
                  "src": "2146:22:42",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15670,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "2146:6:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 15671,
                    "nodeType": "ArrayTypeName",
                    "src": "2146:8:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2099:70:42"
            },
            "returnParameters": {
              "id": 15677,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2202:0:42"
            },
            "scope": 15731,
            "src": "2079:334:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              16552
            ],
            "body": {
              "id": 15729,
              "nodeType": "Block",
              "src": "2595:209:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 15713,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15702,
                            "src": "2645:7:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 15715,
                                  "name": "ICreatorCore",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 15197,
                                  "src": "2659:12:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                                    "typeString": "type(contract ICreatorCore)"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                                    "typeString": "type(contract ICreatorCore)"
                                  }
                                ],
                                "id": 15714,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "2654:4:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 15716,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2654:18:42",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_contract$_ICreatorCore_$15197",
                                "typeString": "type(contract ICreatorCore)"
                              }
                            },
                            "id": 15717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "2673:11:42",
                            "memberName": "interfaceId",
                            "nodeType": "MemberAccess",
                            "src": "2654:30:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 15711,
                            "name": "ERC165Checker",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2326,
                            "src": "2613:13:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC165Checker_$2326_$",
                              "typeString": "type(library ERC165Checker)"
                            }
                          },
                          "id": 15712,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2627:17:42",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2182,
                          "src": "2613:31:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (address,bytes4) view returns (bool)"
                          }
                        },
                        "id": 15718,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2613:72:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "52657175697265732063726561746f7220746f20696d706c656d656e742043726561746f72436f7265",
                        "id": 15719,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2687:43:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a9e30b95a1848f4603ebfb567134faff2d36aca09b34ea40454f03c2999717db",
                          "typeString": "literal_string \"Requires creator to implement CreatorCore\""
                        },
                        "value": "Requires creator to implement CreatorCore"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a9e30b95a1848f4603ebfb567134faff2d36aca09b34ea40454f03c2999717db",
                          "typeString": "literal_string \"Requires creator to implement CreatorCore\""
                        }
                      ],
                      "id": 15710,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "2605:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 15720,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2605:126:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15721,
                  "nodeType": "ExpressionStatement",
                  "src": "2605:126:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 15726,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15704,
                        "src": "2790:6:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 15723,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15702,
                            "src": "2754:7:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 15722,
                          "name": "ICreatorCore",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15197,
                          "src": "2741:12:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_ICreatorCore_$15197_$",
                            "typeString": "type(contract ICreatorCore)"
                          }
                        },
                        "id": 15724,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2741:21:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ICreatorCore_$15197",
                          "typeString": "contract ICreatorCore"
                        }
                      },
                      "id": 15725,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2763:26:42",
                      "memberName": "setTokenURIPrefixExtension",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 15030,
                      "src": "2741:48:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) external"
                      }
                    },
                    "id": 15727,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2741:56:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15728,
                  "nodeType": "ExpressionStatement",
                  "src": "2741:56:42"
                }
              ]
            },
            "documentation": {
              "id": 15700,
              "nodeType": "StructuredDocumentation",
              "src": "2419:71:42",
              "text": " @dev See {ICreatorExtensionBasic-setTokenURIPrefix}."
            },
            "functionSelector": "72ebee8e",
            "id": 15730,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 15708,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 15707,
                  "name": "adminRequired",
                  "nameLocations": [
                    "2581:13:42"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "2581:13:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "2581:13:42"
              }
            ],
            "name": "setTokenURIPrefix",
            "nameLocation": "2504:17:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 15706,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2572:8:42"
            },
            "parameters": {
              "id": 15705,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15702,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "2530:7:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15730,
                  "src": "2522:15:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15701,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2522:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15704,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "2555:6:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 15730,
                  "src": "2539:22:42",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 15703,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2539:6:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2521:41:42"
            },
            "returnParameters": {
              "id": 15709,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2595:0:42"
            },
            "scope": 15731,
            "src": "2495:309:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 15732,
        "src": "396:2412:42",
        "usedErrors": []
      }
    ],
    "src": "33:2775:42"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.758Z",
  "devdoc": {
    "details": "Provides functions to set token uri's",
    "kind": "dev",
    "methods": {
      "approveAdmin(address)": {
        "details": "See {IAdminControl-approveAdmin}."
      },
      "getAdmins()": {
        "details": "See {IAdminControl-getAdmins}."
      },
      "isAdmin(address)": {
        "details": "See {IAdminControl-isAdmin}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "revokeAdmin(address)": {
        "details": "See {IAdminControl-revokeAdmin}."
      },
      "setBaseTokenURI(address,string)": {
        "details": "See {ICreatorExtensionBasic-setBaseTokenURI}."
      },
      "setBaseTokenURI(address,string,bool)": {
        "details": "See {ICreatorExtensionBasic-setBaseTokenURI}."
      },
      "setTokenURI(address,uint256,string)": {
        "details": "See {ICreatorExtensionBasic-setTokenURI}."
      },
      "setTokenURI(address,uint256[],string[])": {
        "details": "See {ICreatorExtensionBasic-setTokenURI}."
      },
      "setTokenURIPrefix(address,string)": {
        "details": "See {ICreatorExtensionBasic-setTokenURIPrefix}."
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}