[
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : true,
            "internalType" : "address",
            "name" : "_owner",
            "type" : "address"
         },
         {
            "indexed" : true,
            "internalType" : "address",
            "name" : "_approved",
            "type" : "address"
         },
         {
            "indexed" : true,
            "internalType" : "uint256",
            "name" : "_tokenId",
            "type" : "uint256"
         }
      ],
      "name" : "Approval",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : true,
            "internalType" : "address",
            "name" : "_owner",
            "type" : "address"
         },
         {
            "indexed" : true,
            "internalType" : "address",
            "name" : "_operator",
            "type" : "address"
         },
         {
            "indexed" : false,
            "internalType" : "bool",
            "name" : "_approved",
            "type" : "bool"
         }
      ],
      "name" : "ApprovalForAll",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : true,
            "internalType" : "address",
            "name" : "_from",
            "type" : "address"
         },
         {
            "indexed" : true,
            "internalType" : "address",
            "name" : "_to",
            "type" : "address"
         },
         {
            "indexed" : true,
            "internalType" : "uint256",
            "name" : "_tokenId",
            "type" : "uint256"
         }
      ],
      "name" : "Transfer",
      "type" : "event"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_approved",
            "type" : "address"
         },
         {
            "internalType" : "uint256",
            "name" : "_tokenId",
            "type" : "uint256"
         }
      ],
      "name" : "approve",
      "outputs" : [],
      "stateMutability" : "payable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_owner",
            "type" : "address"
         }
      ],
      "name" : "balanceOf",
      "outputs" : [
         {
            "internalType" : "uint256",
            "name" : "",
            "type" : "uint256"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "uint256",
            "name" : "_tokenId",
            "type" : "uint256"
         }
      ],
      "name" : "getApproved",
      "outputs" : [
         {
            "internalType" : "address",
            "name" : "",
            "type" : "address"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_owner",
            "type" : "address"
         },
         {
            "internalType" : "address",
            "name" : "_operator",
            "type" : "address"
         }
      ],
      "name" : "isApprovedForAll",
      "outputs" : [
         {
            "internalType" : "bool",
            "name" : "",
            "type" : "bool"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "uint256",
            "name" : "_tokenId",
            "type" : "uint256"
         }
      ],
      "name" : "ownerOf",
      "outputs" : [
         {
            "internalType" : "address",
            "name" : "",
            "type" : "address"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_from",
            "type" : "address"
         },
         {
            "internalType" : "address",
            "name" : "_to",
            "type" : "address"
         },
         {
            "internalType" : "uint256",
            "name" : "_tokenId",
            "type" : "uint256"
         }
      ],
      "name" : "safeTransferFrom",
      "outputs" : [],
      "stateMutability" : "payable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_from",
            "type" : "address"
         },
         {
            "internalType" : "address",
            "name" : "_to",
            "type" : "address"
         },
         {
            "internalType" : "uint256",
            "name" : "_tokenId",
            "type" : "uint256"
         },
         {
            "internalType" : "bytes",
            "name" : "data",
            "type" : "bytes"
         }
      ],
      "name" : "safeTransferFrom",
      "outputs" : [],
      "stateMutability" : "payable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_operator",
            "type" : "address"
         },
         {
            "internalType" : "bool",
            "name" : "_approved",
            "type" : "bool"
         }
      ],
      "name" : "setApprovalForAll",
      "outputs" : [],
      "stateMutability" : "nonpayable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_from",
            "type" : "address"
         },
         {
            "internalType" : "address",
            "name" : "_to",
            "type" : "address"
         },
         {
            "internalType" : "uint256",
            "name" : "_tokenId",
            "type" : "uint256"
         }
      ],
      "name" : "transferFrom",
      "outputs" : [],
      "stateMutability" : "payable",
      "type" : "function"
   }
]
