{"abi":[{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"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\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Modern, minimalist, and gas efficient ERC-721 implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solmate/src/tokens/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/tokens/ERC721.sol\":{\"keccak256\":\"0xdac91feb466e74905737338d80cac5303eb7aedcbe76eda11c45eaa728451075\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe01292f5b4d2182859cc30a773f5e9d1a91d02bd8b40fbb73a591cd67896408\",\"dweb:/ipfs/QmTUKUuFJ4QZRD8ge6eTorfni9RKhBtPo1wFVm3GFSgLW8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/solmate/src/tokens/ERC721.sol":"ERC721"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/solmate/src/tokens/ERC721.sol":{"keccak256":"0xdac91feb466e74905737338d80cac5303eb7aedcbe76eda11c45eaa728451075","urls":["bzz-raw://fe01292f5b4d2182859cc30a773f5e9d1a91d02bd8b40fbb73a591cd67896408","dweb:/ipfs/QmTUKUuFJ4QZRD8ge6eTorfni9RKhBtPo1wFVm3GFSgLW8"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":65218,"contract":"lib/solmate/src/tokens/ERC721.sol:ERC721","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":65220,"contract":"lib/solmate/src/tokens/ERC721.sol:ERC721","label":"symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":65231,"contract":"lib/solmate/src/tokens/ERC721.sol:ERC721","label":"_ownerOf","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":65235,"contract":"lib/solmate/src/tokens/ERC721.sol:ERC721","label":"_balanceOf","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":65284,"contract":"lib/solmate/src/tokens/ERC721.sol:ERC721","label":"getApproved","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":65290,"contract":"lib/solmate/src/tokens/ERC721.sol:ERC721","label":"isApprovedForAll","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","notice":"Modern, minimalist, and gas efficient ERC-721 implementation."},"devdoc":{"version":1,"kind":"dev","author":"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)"},"ast":{"absolutePath":"lib/solmate/src/tokens/ERC721.sol","id":65754,"exportedSymbols":{"ERC721":[65733],"ERC721TokenReceiver":[65753]},"nodeType":"SourceUnit","src":"32:7373:111","nodes":[{"id":65191,"nodeType":"PragmaDirective","src":"32:24:111","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":65733,"nodeType":"ContractDefinition","src":"226:6741:111","nodes":[{"id":65200,"nodeType":"EventDefinition","src":"436:77:111","nodes":[],"anonymous":false,"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"442:8:111","parameters":{"id":65199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65194,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"467:4:111","nodeType":"VariableDeclaration","scope":65200,"src":"451:20:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65193,"name":"address","nodeType":"ElementaryTypeName","src":"451:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65196,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"489:2:111","nodeType":"VariableDeclaration","scope":65200,"src":"473:18:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65195,"name":"address","nodeType":"ElementaryTypeName","src":"473:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65198,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"509:2:111","nodeType":"VariableDeclaration","scope":65200,"src":"493:18:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65197,"name":"uint256","nodeType":"ElementaryTypeName","src":"493:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"450:62:111"}},{"id":65208,"nodeType":"EventDefinition","src":"519:83:111","nodes":[],"anonymous":false,"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"525:8:111","parameters":{"id":65207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65202,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"550:5:111","nodeType":"VariableDeclaration","scope":65208,"src":"534:21:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65201,"name":"address","nodeType":"ElementaryTypeName","src":"534:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65204,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"573:7:111","nodeType":"VariableDeclaration","scope":65208,"src":"557:23:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65203,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65206,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"598:2:111","nodeType":"VariableDeclaration","scope":65208,"src":"582:18:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65205,"name":"uint256","nodeType":"ElementaryTypeName","src":"582:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"533:68:111"}},{"id":65216,"nodeType":"EventDefinition","src":"608:85:111","nodes":[],"anonymous":false,"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","name":"ApprovalForAll","nameLocation":"614:14:111","parameters":{"id":65215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65210,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"645:5:111","nodeType":"VariableDeclaration","scope":65216,"src":"629:21:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65209,"name":"address","nodeType":"ElementaryTypeName","src":"629:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65212,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"668:8:111","nodeType":"VariableDeclaration","scope":65216,"src":"652:24:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65211,"name":"address","nodeType":"ElementaryTypeName","src":"652:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65214,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"683:8:111","nodeType":"VariableDeclaration","scope":65216,"src":"678:13:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":65213,"name":"bool","nodeType":"ElementaryTypeName","src":"678:4:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"628:64:111"}},{"id":65218,"nodeType":"VariableDeclaration","src":"886:18:111","nodes":[],"constant":false,"functionSelector":"06fdde03","mutability":"mutable","name":"name","nameLocation":"900:4:111","scope":65733,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":65217,"name":"string","nodeType":"ElementaryTypeName","src":"886:6:111","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":65220,"nodeType":"VariableDeclaration","src":"911:20:111","nodes":[],"constant":false,"functionSelector":"95d89b41","mutability":"mutable","name":"symbol","nameLocation":"925:6:111","scope":65733,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":65219,"name":"string","nodeType":"ElementaryTypeName","src":"911:6:111","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":65227,"nodeType":"FunctionDefinition","src":"938:74:111","nodes":[],"functionSelector":"c87b56dd","implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"947:8:111","parameters":{"id":65223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65222,"mutability":"mutable","name":"id","nameLocation":"964:2:111","nodeType":"VariableDeclaration","scope":65227,"src":"956:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65221,"name":"uint256","nodeType":"ElementaryTypeName","src":"956:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"955:12:111"},"returnParameters":{"id":65226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65227,"src":"997:13:111","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":65224,"name":"string","nodeType":"ElementaryTypeName","src":"997:6:111","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"996:15:111"},"scope":65733,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":65231,"nodeType":"VariableDeclaration","src":"1208:45:111","nodes":[],"constant":false,"mutability":"mutable","name":"_ownerOf","nameLocation":"1245:8:111","scope":65733,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":65230,"keyType":{"id":65228,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1208:27:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":65229,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":65235,"nodeType":"VariableDeclaration","src":"1260:47:111","nodes":[],"constant":false,"mutability":"mutable","name":"_balanceOf","nameLocation":"1297:10:111","scope":65733,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":65234,"keyType":{"id":65232,"name":"address","nodeType":"ElementaryTypeName","src":"1268:7:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1260:27:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":65233,"name":"uint256","nodeType":"ElementaryTypeName","src":"1279:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"id":65258,"nodeType":"FunctionDefinition","src":"1314:149:111","nodes":[],"body":{"id":65257,"nodeType":"Block","src":"1387:76:111","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":65253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"id":65247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65243,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65240,"src":"1406:5:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65244,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65231,"src":"1414:8:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65246,"indexExpression":{"id":65245,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65237,"src":"1423:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1414:12:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1406:20:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":65248,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1405:22:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":65251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1439:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":65250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1431:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65249,"name":"address","nodeType":"ElementaryTypeName","src":"1431:7:111","typeDescriptions":{}}},"id":65252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1431:10:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1405:36:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f4d494e544544","id":65254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1443:12:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""},"value":"NOT_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""}],"id":65242,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1397:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1397:59:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65256,"nodeType":"ExpressionStatement","src":"1397:59:111"}]},"functionSelector":"6352211e","implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1323:7:111","parameters":{"id":65238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65237,"mutability":"mutable","name":"id","nameLocation":"1339:2:111","nodeType":"VariableDeclaration","scope":65258,"src":"1331:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65236,"name":"uint256","nodeType":"ElementaryTypeName","src":"1331:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1330:12:111"},"returnParameters":{"id":65241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65240,"mutability":"mutable","name":"owner","nameLocation":"1380:5:111","nodeType":"VariableDeclaration","scope":65258,"src":"1372:13:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65239,"name":"address","nodeType":"ElementaryTypeName","src":"1372:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1371:15:111"},"scope":65733,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":65280,"nodeType":"FunctionDefinition","src":"1469:168:111","nodes":[],"body":{"id":65279,"nodeType":"Block","src":"1541:96:111","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":65271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":65266,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65260,"src":"1559:5:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":65269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1576:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":65268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1568:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65267,"name":"address","nodeType":"ElementaryTypeName","src":"1568:7:111","typeDescriptions":{}}},"id":65270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1568:10:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1559:19:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5a45524f5f41444452455353","id":65272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1580:14:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_71869b3729b99fadce3ee30cb1aa2a0d639e6a2d24158c1ae1ae0059e81b72af","typeString":"literal_string \"ZERO_ADDRESS\""},"value":"ZERO_ADDRESS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71869b3729b99fadce3ee30cb1aa2a0d639e6a2d24158c1ae1ae0059e81b72af","typeString":"literal_string \"ZERO_ADDRESS\""}],"id":65265,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1551:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1551:44:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65274,"nodeType":"ExpressionStatement","src":"1551:44:111"},{"expression":{"baseExpression":{"id":65275,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65235,"src":"1613:10:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":65277,"indexExpression":{"id":65276,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65260,"src":"1624:5:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1613:17:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":65264,"id":65278,"nodeType":"Return","src":"1606:24:111"}]},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1478:9:111","parameters":{"id":65261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65260,"mutability":"mutable","name":"owner","nameLocation":"1496:5:111","nodeType":"VariableDeclaration","scope":65280,"src":"1488:13:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65259,"name":"address","nodeType":"ElementaryTypeName","src":"1488:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1487:15:111"},"returnParameters":{"id":65264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65280,"src":"1532:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65262,"name":"uint256","nodeType":"ElementaryTypeName","src":"1532:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1531:9:111"},"scope":65733,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":65284,"nodeType":"VariableDeclaration","src":"1831:46:111","nodes":[],"constant":false,"functionSelector":"081812fc","mutability":"mutable","name":"getApproved","nameLocation":"1866:11:111","scope":65733,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":65283,"keyType":{"id":65281,"name":"uint256","nodeType":"ElementaryTypeName","src":"1839:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1831:27:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":65282,"name":"address","nodeType":"ElementaryTypeName","src":"1850:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"id":65290,"nodeType":"VariableDeclaration","src":"1884:68:111","nodes":[],"constant":false,"functionSelector":"e985e9c5","mutability":"mutable","name":"isApprovedForAll","nameLocation":"1936:16:111","scope":65733,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":65289,"keyType":{"id":65285,"name":"address","nodeType":"ElementaryTypeName","src":"1892:7:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1884:44:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":65288,"keyType":{"id":65286,"name":"address","nodeType":"ElementaryTypeName","src":"1911:7:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1903:24:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":65287,"name":"bool","nodeType":"ElementaryTypeName","src":"1922:4:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"id":65306,"nodeType":"FunctionDefinition","src":"2141:111:111","nodes":[],"body":{"id":65305,"nodeType":"Block","src":"2197:55:111","nodes":[],"statements":[{"expression":{"id":65299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65297,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65218,"src":"2207:4:111","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":65298,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65292,"src":"2214:5:111","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2207:12:111","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":65300,"nodeType":"ExpressionStatement","src":"2207:12:111"},{"expression":{"id":65303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65301,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65220,"src":"2229:6:111","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":65302,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65294,"src":"2238:7:111","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2229:16:111","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":65304,"nodeType":"ExpressionStatement","src":"2229:16:111"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":65295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65292,"mutability":"mutable","name":"_name","nameLocation":"2167:5:111","nodeType":"VariableDeclaration","scope":65306,"src":"2153:19:111","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":65291,"name":"string","nodeType":"ElementaryTypeName","src":"2153:6:111","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":65294,"mutability":"mutable","name":"_symbol","nameLocation":"2188:7:111","nodeType":"VariableDeclaration","scope":65306,"src":"2174:21:111","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":65293,"name":"string","nodeType":"ElementaryTypeName","src":"2174:6:111","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2152:44:111"},"returnParameters":{"id":65296,"nodeType":"ParameterList","parameters":[],"src":"2197:0:111"},"scope":65733,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":65347,"nodeType":"FunctionDefinition","src":"2440:282:111","nodes":[],"body":{"id":65346,"nodeType":"Block","src":"2501:221:111","nodes":[],"statements":[{"assignments":[65314],"declarations":[{"constant":false,"id":65314,"mutability":"mutable","name":"owner","nameLocation":"2519:5:111","nodeType":"VariableDeclaration","scope":65346,"src":"2511:13:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65313,"name":"address","nodeType":"ElementaryTypeName","src":"2511:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":65318,"initialValue":{"baseExpression":{"id":65315,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65231,"src":"2527:8:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65317,"indexExpression":{"id":65316,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65310,"src":"2536:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2527:12:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2511:28:111"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":65330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":65323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":65320,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2558:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2558:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":65322,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65314,"src":"2572:5:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2558:19:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":65324,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65290,"src":"2581:16:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":65326,"indexExpression":{"id":65325,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65314,"src":"2598:5:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2581:23:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":65329,"indexExpression":{"expression":{"id":65327,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2605:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2605:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2581:35:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2558:58:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f415554484f52495a4544","id":65331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2618:16:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""},"value":"NOT_AUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""}],"id":65319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2550:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2550:85:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65333,"nodeType":"ExpressionStatement","src":"2550:85:111"},{"expression":{"id":65338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":65334,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65284,"src":"2646:11:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65336,"indexExpression":{"id":65335,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65310,"src":"2658:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2646:15:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":65337,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65308,"src":"2664:7:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2646:25:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":65339,"nodeType":"ExpressionStatement","src":"2646:25:111"},{"eventCall":{"arguments":[{"id":65341,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65314,"src":"2696:5:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65342,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65308,"src":"2703:7:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65343,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65310,"src":"2712:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65340,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"2687:8:111","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":65344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2687:28:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65345,"nodeType":"EmitStatement","src":"2682:33:111"}]},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2449:7:111","parameters":{"id":65311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65308,"mutability":"mutable","name":"spender","nameLocation":"2465:7:111","nodeType":"VariableDeclaration","scope":65347,"src":"2457:15:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65307,"name":"address","nodeType":"ElementaryTypeName","src":"2457:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65310,"mutability":"mutable","name":"id","nameLocation":"2482:2:111","nodeType":"VariableDeclaration","scope":65347,"src":"2474:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65309,"name":"uint256","nodeType":"ElementaryTypeName","src":"2474:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2456:29:111"},"returnParameters":{"id":65312,"nodeType":"ParameterList","parameters":[],"src":"2501:0:111"},"scope":65733,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":65371,"nodeType":"FunctionDefinition","src":"2728:203:111","nodes":[],"body":{"id":65370,"nodeType":"Block","src":"2803:128:111","nodes":[],"statements":[{"expression":{"id":65361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":65354,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65290,"src":"2813:16:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":65358,"indexExpression":{"expression":{"id":65355,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2830:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2830:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2813:28:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":65359,"indexExpression":{"id":65357,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65349,"src":"2842:8:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2813:38:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":65360,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65351,"src":"2854:8:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2813:49:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":65362,"nodeType":"ExpressionStatement","src":"2813:49:111"},{"eventCall":{"arguments":[{"expression":{"id":65364,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2893:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2893:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65366,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65349,"src":"2905:8:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65367,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65351,"src":"2915:8:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":65363,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65216,"src":"2878:14:111","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":65368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2878:46:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65369,"nodeType":"EmitStatement","src":"2873:51:111"}]},"functionSelector":"a22cb465","implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"2737:17:111","parameters":{"id":65352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65349,"mutability":"mutable","name":"operator","nameLocation":"2763:8:111","nodeType":"VariableDeclaration","scope":65371,"src":"2755:16:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65348,"name":"address","nodeType":"ElementaryTypeName","src":"2755:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65351,"mutability":"mutable","name":"approved","nameLocation":"2778:8:111","nodeType":"VariableDeclaration","scope":65371,"src":"2773:13:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":65350,"name":"bool","nodeType":"ElementaryTypeName","src":"2773:4:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2754:33:111"},"returnParameters":{"id":65353,"nodeType":"ParameterList","parameters":[],"src":"2803:0:111"},"scope":65733,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":65450,"nodeType":"FunctionDefinition","src":"2937:741:111","nodes":[],"body":{"id":65449,"nodeType":"Block","src":"3042:636:111","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":65385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":65381,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65373,"src":"3060:4:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":65382,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65231,"src":"3068:8:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65384,"indexExpression":{"id":65383,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65377,"src":"3077:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3068:12:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3060:20:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"57524f4e475f46524f4d","id":65386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3082:12:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_f70366941d4d371c05a2457cbc0f4d05a3d6bc57ab01a7c3338bfed233eebe93","typeString":"literal_string \"WRONG_FROM\""},"value":"WRONG_FROM"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f70366941d4d371c05a2457cbc0f4d05a3d6bc57ab01a7c3338bfed233eebe93","typeString":"literal_string \"WRONG_FROM\""}],"id":65380,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3052:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3052:43:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65388,"nodeType":"ExpressionStatement","src":"3052:43:111"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":65395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":65390,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65375,"src":"3114:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":65393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3128:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":65392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3120:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65391,"name":"address","nodeType":"ElementaryTypeName","src":"3120:7:111","typeDescriptions":{}}},"id":65394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3120:10:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3114:16:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f524543495049454e54","id":65396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3132:19:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""},"value":"INVALID_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""}],"id":65389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3106:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3106:46:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65398,"nodeType":"ExpressionStatement","src":"3106:46:111"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":65417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":65410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":65403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":65400,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3184:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3184:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":65402,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65373,"src":"3198:4:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3184:18:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":65404,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65290,"src":"3206:16:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":65406,"indexExpression":{"id":65405,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65373,"src":"3223:4:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3206:22:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":65409,"indexExpression":{"expression":{"id":65407,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3229:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3229:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3206:34:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3184:56:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":65416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":65411,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3244:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3244:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":65413,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65284,"src":"3258:11:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65415,"indexExpression":{"id":65414,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65377,"src":"3270:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3258:15:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3244:29:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3184:89:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f415554484f52495a4544","id":65418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3287:16:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""},"value":"NOT_AUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""}],"id":65399,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3163:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3163:150:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65420,"nodeType":"ExpressionStatement","src":"3163:150:111"},{"id":65431,"nodeType":"UncheckedBlock","src":"3489:84:111","statements":[{"expression":{"id":65424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"3513:18:111","subExpression":{"baseExpression":{"id":65421,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65235,"src":"3513:10:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":65423,"indexExpression":{"id":65422,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65373,"src":"3524:4:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3513:16:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":65425,"nodeType":"ExpressionStatement","src":"3513:18:111"},{"expression":{"id":65429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3546:16:111","subExpression":{"baseExpression":{"id":65426,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65235,"src":"3546:10:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":65428,"indexExpression":{"id":65427,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65375,"src":"3557:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3546:14:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":65430,"nodeType":"ExpressionStatement","src":"3546:16:111"}]},{"expression":{"id":65436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":65432,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65231,"src":"3583:8:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65434,"indexExpression":{"id":65433,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65377,"src":"3592:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3583:12:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":65435,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65375,"src":"3598:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3583:17:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":65437,"nodeType":"ExpressionStatement","src":"3583:17:111"},{"expression":{"id":65441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3611:22:111","subExpression":{"baseExpression":{"id":65438,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65284,"src":"3618:11:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65440,"indexExpression":{"id":65439,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65377,"src":"3630:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3618:15:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65442,"nodeType":"ExpressionStatement","src":"3611:22:111"},{"eventCall":{"arguments":[{"id":65444,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65373,"src":"3658:4:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65445,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65375,"src":"3664:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65446,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65377,"src":"3668:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65443,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65200,"src":"3649:8:111","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":65447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3649:22:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65448,"nodeType":"EmitStatement","src":"3644:27:111"}]},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2946:12:111","parameters":{"id":65378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65373,"mutability":"mutable","name":"from","nameLocation":"2976:4:111","nodeType":"VariableDeclaration","scope":65450,"src":"2968:12:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65372,"name":"address","nodeType":"ElementaryTypeName","src":"2968:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65375,"mutability":"mutable","name":"to","nameLocation":"2998:2:111","nodeType":"VariableDeclaration","scope":65450,"src":"2990:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65374,"name":"address","nodeType":"ElementaryTypeName","src":"2990:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65377,"mutability":"mutable","name":"id","nameLocation":"3018:2:111","nodeType":"VariableDeclaration","scope":65450,"src":"3010:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65376,"name":"uint256","nodeType":"ElementaryTypeName","src":"3010:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2958:68:111"},"returnParameters":{"id":65379,"nodeType":"ParameterList","parameters":[],"src":"3042:0:111"},"scope":65733,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":65490,"nodeType":"FunctionDefinition","src":"3684:410:111","nodes":[],"body":{"id":65489,"nodeType":"Block","src":"3793:301:111","nodes":[],"statements":[{"expression":{"arguments":[{"id":65460,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65452,"src":"3816:4:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65461,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65454,"src":"3822:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65462,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65456,"src":"3826:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65459,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65450,"src":"3803:12:111","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":65463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3803:26:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65464,"nodeType":"ExpressionStatement","src":"3803:26:111"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":65469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":65465,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65454,"src":"3844:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":65466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"3844:7:111","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":65467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3844:14:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":65468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3862:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3844:19:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":65488,"nodeType":"IfStatement","src":"3840:247:111","trueBody":{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":65484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":65475,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3943:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3943:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65477,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65452,"src":"3955:4:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65478,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65456,"src":"3961:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":65479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3965:2:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":65472,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65454,"src":"3922:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":65471,"name":"ERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65753,"src":"3902:19:111","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721TokenReceiver_$65753_$","typeString":"type(contract ERC721TokenReceiver)"}},"id":65473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3902:23:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC721TokenReceiver_$65753","typeString":"contract ERC721TokenReceiver"}},"id":65474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":65752,"src":"3902:40:111","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":65480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3902:66:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":65481,"name":"ERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65753,"src":"3992:19:111","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721TokenReceiver_$65753_$","typeString":"type(contract ERC721TokenReceiver)"}},"id":65482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":65752,"src":"3992:36:111","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function ERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":65483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"3992:45:111","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3902:135:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":65485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4055:18:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":65470,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3877:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3877:210:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65487,"nodeType":"ExpressionStatement","src":"3877:210:111"}}]},"functionSelector":"42842e0e","implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3693:16:111","parameters":{"id":65457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65452,"mutability":"mutable","name":"from","nameLocation":"3727:4:111","nodeType":"VariableDeclaration","scope":65490,"src":"3719:12:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65451,"name":"address","nodeType":"ElementaryTypeName","src":"3719:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65454,"mutability":"mutable","name":"to","nameLocation":"3749:2:111","nodeType":"VariableDeclaration","scope":65490,"src":"3741:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65453,"name":"address","nodeType":"ElementaryTypeName","src":"3741:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65456,"mutability":"mutable","name":"id","nameLocation":"3769:2:111","nodeType":"VariableDeclaration","scope":65490,"src":"3761:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65455,"name":"uint256","nodeType":"ElementaryTypeName","src":"3761:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3709:68:111"},"returnParameters":{"id":65458,"nodeType":"ParameterList","parameters":[],"src":"3793:0:111"},"scope":65733,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":65532,"nodeType":"FunctionDefinition","src":"4100:441:111","nodes":[],"body":{"id":65531,"nodeType":"Block","src":"4238:303:111","nodes":[],"statements":[{"expression":{"arguments":[{"id":65502,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65492,"src":"4261:4:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65503,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65494,"src":"4267:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65504,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65496,"src":"4271:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65501,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65450,"src":"4248:12:111","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":65505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4248:26:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65506,"nodeType":"ExpressionStatement","src":"4248:26:111"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":65511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":65507,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65494,"src":"4289:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":65508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"4289:7:111","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":65509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4289:14:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":65510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4307:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4289:19:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":65530,"nodeType":"IfStatement","src":"4285:249:111","trueBody":{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":65526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":65517,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4388:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4388:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65519,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65492,"src":"4400:4:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65520,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65496,"src":"4406:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":65521,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65498,"src":"4410:4:111","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":65514,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65494,"src":"4367:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":65513,"name":"ERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65753,"src":"4347:19:111","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721TokenReceiver_$65753_$","typeString":"type(contract ERC721TokenReceiver)"}},"id":65515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4347:23:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC721TokenReceiver_$65753","typeString":"contract ERC721TokenReceiver"}},"id":65516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":65752,"src":"4347:40:111","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":65522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4347:68:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":65523,"name":"ERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65753,"src":"4439:19:111","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721TokenReceiver_$65753_$","typeString":"type(contract ERC721TokenReceiver)"}},"id":65524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":65752,"src":"4439:36:111","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function ERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":65525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"4439:45:111","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4347:137:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":65527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4502:18:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":65512,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4322:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4322:212:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65529,"nodeType":"ExpressionStatement","src":"4322:212:111"}}]},"functionSelector":"b88d4fde","implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4109:16:111","parameters":{"id":65499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65492,"mutability":"mutable","name":"from","nameLocation":"4143:4:111","nodeType":"VariableDeclaration","scope":65532,"src":"4135:12:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65491,"name":"address","nodeType":"ElementaryTypeName","src":"4135:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65494,"mutability":"mutable","name":"to","nameLocation":"4165:2:111","nodeType":"VariableDeclaration","scope":65532,"src":"4157:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65493,"name":"address","nodeType":"ElementaryTypeName","src":"4157:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65496,"mutability":"mutable","name":"id","nameLocation":"4185:2:111","nodeType":"VariableDeclaration","scope":65532,"src":"4177:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65495,"name":"uint256","nodeType":"ElementaryTypeName","src":"4177:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":65498,"mutability":"mutable","name":"data","nameLocation":"4212:4:111","nodeType":"VariableDeclaration","scope":65532,"src":"4197:19:111","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":65497,"name":"bytes","nodeType":"ElementaryTypeName","src":"4197:5:111","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4125:97:111"},"returnParameters":{"id":65500,"nodeType":"ParameterList","parameters":[],"src":"4238:0:111"},"scope":65733,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":65552,"nodeType":"FunctionDefinition","src":"4729:335:111","nodes":[],"body":{"id":65551,"nodeType":"Block","src":"4811:253:111","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":65549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":65545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":65541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":65539,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65534,"src":"4840:11:111","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783031666663396137","id":65540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4855:10:111","typeDescriptions":{"typeIdentifier":"t_rational_33540519_by_1","typeString":"int_const 33540519"},"value":"0x01ffc9a7"},"src":"4840:25:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":65544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":65542,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65534,"src":"4915:11:111","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783830616335386364","id":65543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4930:10:111","typeDescriptions":{"typeIdentifier":"t_rational_2158778573_by_1","typeString":"int_const 2158778573"},"value":"0x80ac58cd"},"src":"4915:25:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4840:100:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":65548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":65546,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65534,"src":"4990:11:111","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783562356531333966","id":65547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5005:10:111","typeDescriptions":{"typeIdentifier":"t_rational_1532892063_by_1","typeString":"int_const 1532892063"},"value":"0x5b5e139f"},"src":"4990:25:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4840:175:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":65538,"id":65550,"nodeType":"Return","src":"4821:194:111"}]},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"4738:17:111","parameters":{"id":65535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65534,"mutability":"mutable","name":"interfaceId","nameLocation":"4763:11:111","nodeType":"VariableDeclaration","scope":65552,"src":"4756:18:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":65533,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4756:6:111","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4755:20:111"},"returnParameters":{"id":65538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65552,"src":"4805:4:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":65536,"name":"bool","nodeType":"ElementaryTypeName","src":"4805:4:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4804:6:111"},"scope":65733,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":65603,"nodeType":"FunctionDefinition","src":"5258:371:111","nodes":[],"body":{"id":65602,"nodeType":"Block","src":"5314:315:111","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":65565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":65560,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65554,"src":"5332:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":65563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5346:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":65562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5338:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65561,"name":"address","nodeType":"ElementaryTypeName","src":"5338:7:111","typeDescriptions":{}}},"id":65564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5338:10:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5332:16:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f524543495049454e54","id":65566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5350:19:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""},"value":"INVALID_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""}],"id":65559,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5324:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5324:46:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65568,"nodeType":"ExpressionStatement","src":"5324:46:111"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":65577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":65570,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65231,"src":"5389:8:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65572,"indexExpression":{"id":65571,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65556,"src":"5398:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5389:12:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":65575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5413:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":65574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5405:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65573,"name":"address","nodeType":"ElementaryTypeName","src":"5405:7:111","typeDescriptions":{}}},"id":65576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5405:10:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5389:26:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f4d494e544544","id":65578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5417:16:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3f56786f4dc15ea567a5bcea1aa6e11424106cac78b0acf41b1b7deccad9f1b","typeString":"literal_string \"ALREADY_MINTED\""},"value":"ALREADY_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3f56786f4dc15ea567a5bcea1aa6e11424106cac78b0acf41b1b7deccad9f1b","typeString":"literal_string \"ALREADY_MINTED\""}],"id":65569,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5381:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5381:53:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65580,"nodeType":"ExpressionStatement","src":"5381:53:111"},{"id":65586,"nodeType":"UncheckedBlock","src":"5500:51:111","statements":[{"expression":{"id":65584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5524:16:111","subExpression":{"baseExpression":{"id":65581,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65235,"src":"5524:10:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":65583,"indexExpression":{"id":65582,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65554,"src":"5535:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5524:14:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":65585,"nodeType":"ExpressionStatement","src":"5524:16:111"}]},{"expression":{"id":65591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":65587,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65231,"src":"5561:8:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65589,"indexExpression":{"id":65588,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65556,"src":"5570:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5561:12:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":65590,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65554,"src":"5576:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5561:17:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":65592,"nodeType":"ExpressionStatement","src":"5561:17:111"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":65596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5611:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":65595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5603:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65594,"name":"address","nodeType":"ElementaryTypeName","src":"5603:7:111","typeDescriptions":{}}},"id":65597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5603:10:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65598,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65554,"src":"5615:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65599,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65556,"src":"5619:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65593,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65200,"src":"5594:8:111","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":65600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5594:28:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65601,"nodeType":"EmitStatement","src":"5589:33:111"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"5267:5:111","parameters":{"id":65557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65554,"mutability":"mutable","name":"to","nameLocation":"5281:2:111","nodeType":"VariableDeclaration","scope":65603,"src":"5273:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65553,"name":"address","nodeType":"ElementaryTypeName","src":"5273:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65556,"mutability":"mutable","name":"id","nameLocation":"5293:2:111","nodeType":"VariableDeclaration","scope":65603,"src":"5285:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65555,"name":"uint256","nodeType":"ElementaryTypeName","src":"5285:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5272:24:111"},"returnParameters":{"id":65558,"nodeType":"ParameterList","parameters":[],"src":"5314:0:111"},"scope":65733,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":65650,"nodeType":"FunctionDefinition","src":"5635:371:111","nodes":[],"body":{"id":65649,"nodeType":"Block","src":"5679:327:111","nodes":[],"statements":[{"assignments":[65609],"declarations":[{"constant":false,"id":65609,"mutability":"mutable","name":"owner","nameLocation":"5697:5:111","nodeType":"VariableDeclaration","scope":65649,"src":"5689:13:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65608,"name":"address","nodeType":"ElementaryTypeName","src":"5689:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":65613,"initialValue":{"baseExpression":{"id":65610,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65231,"src":"5705:8:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65612,"indexExpression":{"id":65611,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65605,"src":"5714:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5705:12:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5689:28:111"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":65620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":65615,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65609,"src":"5736:5:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":65618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5753:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":65617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5745:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65616,"name":"address","nodeType":"ElementaryTypeName","src":"5745:7:111","typeDescriptions":{}}},"id":65619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5745:10:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5736:19:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f4d494e544544","id":65621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:12:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""},"value":"NOT_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""}],"id":65614,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5728:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5728:42:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65623,"nodeType":"ExpressionStatement","src":"5728:42:111"},{"id":65629,"nodeType":"UncheckedBlock","src":"5836:54:111","statements":[{"expression":{"id":65627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"5860:19:111","subExpression":{"baseExpression":{"id":65624,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65235,"src":"5860:10:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":65626,"indexExpression":{"id":65625,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65609,"src":"5871:5:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5860:17:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":65628,"nodeType":"ExpressionStatement","src":"5860:19:111"}]},{"expression":{"id":65633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5900:19:111","subExpression":{"baseExpression":{"id":65630,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65231,"src":"5907:8:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65632,"indexExpression":{"id":65631,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65605,"src":"5916:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5907:12:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65634,"nodeType":"ExpressionStatement","src":"5900:19:111"},{"expression":{"id":65638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5930:22:111","subExpression":{"baseExpression":{"id":65635,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65284,"src":"5937:11:111","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":65637,"indexExpression":{"id":65636,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65605,"src":"5949:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5937:15:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65639,"nodeType":"ExpressionStatement","src":"5930:22:111"},{"eventCall":{"arguments":[{"id":65641,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65609,"src":"5977:5:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":65644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5992:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":65643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5984:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65642,"name":"address","nodeType":"ElementaryTypeName","src":"5984:7:111","typeDescriptions":{}}},"id":65645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5984:10:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65646,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65605,"src":"5996:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65640,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65200,"src":"5968:8:111","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":65647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5968:31:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65648,"nodeType":"EmitStatement","src":"5963:36:111"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"5644:5:111","parameters":{"id":65606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65605,"mutability":"mutable","name":"id","nameLocation":"5658:2:111","nodeType":"VariableDeclaration","scope":65650,"src":"5650:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65604,"name":"uint256","nodeType":"ElementaryTypeName","src":"5650:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5649:12:111"},"returnParameters":{"id":65607,"nodeType":"ParameterList","parameters":[],"src":"5679:0:111"},"scope":65733,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":65690,"nodeType":"FunctionDefinition","src":"6200:354:111","nodes":[],"body":{"id":65689,"nodeType":"Block","src":"6260:294:111","nodes":[],"statements":[{"expression":{"arguments":[{"id":65658,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65652,"src":"6276:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65659,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65654,"src":"6280:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65657,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65603,"src":"6270:5:111","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":65660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6270:13:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65661,"nodeType":"ExpressionStatement","src":"6270:13:111"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":65666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":65662,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65652,"src":"6298:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":65663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"6298:7:111","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":65664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6298:14:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":65665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6316:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6298:19:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":65688,"nodeType":"IfStatement","src":"6294:253:111","trueBody":{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":65684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":65672,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6397:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6397:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":65676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6417:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":65675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6409:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65674,"name":"address","nodeType":"ElementaryTypeName","src":"6409:7:111","typeDescriptions":{}}},"id":65677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6409:10:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65678,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65654,"src":"6421:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":65679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6425:2:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":65669,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65652,"src":"6376:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":65668,"name":"ERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65753,"src":"6356:19:111","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721TokenReceiver_$65753_$","typeString":"type(contract ERC721TokenReceiver)"}},"id":65670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6356:23:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC721TokenReceiver_$65753","typeString":"contract ERC721TokenReceiver"}},"id":65671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":65752,"src":"6356:40:111","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":65680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6356:72:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":65681,"name":"ERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65753,"src":"6452:19:111","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721TokenReceiver_$65753_$","typeString":"type(contract ERC721TokenReceiver)"}},"id":65682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":65752,"src":"6452:36:111","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function ERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":65683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"6452:45:111","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6356:141:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":65685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6515:18:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":65667,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6331:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6331:216:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65687,"nodeType":"ExpressionStatement","src":"6331:216:111"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"6209:9:111","parameters":{"id":65655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65652,"mutability":"mutable","name":"to","nameLocation":"6227:2:111","nodeType":"VariableDeclaration","scope":65690,"src":"6219:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65651,"name":"address","nodeType":"ElementaryTypeName","src":"6219:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65654,"mutability":"mutable","name":"id","nameLocation":"6239:2:111","nodeType":"VariableDeclaration","scope":65690,"src":"6231:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65653,"name":"uint256","nodeType":"ElementaryTypeName","src":"6231:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6218:24:111"},"returnParameters":{"id":65656,"nodeType":"ParameterList","parameters":[],"src":"6260:0:111"},"scope":65733,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":65732,"nodeType":"FunctionDefinition","src":"6560:405:111","nodes":[],"body":{"id":65731,"nodeType":"Block","src":"6669:296:111","nodes":[],"statements":[{"expression":{"arguments":[{"id":65700,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65692,"src":"6685:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65701,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65694,"src":"6689:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65699,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65603,"src":"6679:5:111","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":65702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6679:13:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65703,"nodeType":"ExpressionStatement","src":"6679:13:111"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":65708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":65704,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65692,"src":"6707:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":65705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"6707:7:111","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":65706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6707:14:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":65707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6725:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6707:19:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":65730,"nodeType":"IfStatement","src":"6703:255:111","trueBody":{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":65726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":65714,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6806:3:111","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":65715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6806:10:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":65718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6826:1:111","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":65717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6818:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65716,"name":"address","nodeType":"ElementaryTypeName","src":"6818:7:111","typeDescriptions":{}}},"id":65719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6818:10:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":65720,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65694,"src":"6830:2:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":65721,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65696,"src":"6834:4:111","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":65711,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65692,"src":"6785:2:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":65710,"name":"ERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65753,"src":"6765:19:111","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721TokenReceiver_$65753_$","typeString":"type(contract ERC721TokenReceiver)"}},"id":65712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6765:23:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC721TokenReceiver_$65753","typeString":"contract ERC721TokenReceiver"}},"id":65713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":65752,"src":"6765:40:111","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":65722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6765:74:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":65723,"name":"ERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65753,"src":"6863:19:111","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721TokenReceiver_$65753_$","typeString":"type(contract ERC721TokenReceiver)"}},"id":65724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":65752,"src":"6863:36:111","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function ERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":65725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"6863:45:111","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6765:143:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":65727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6926:18:111","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":65709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6740:7:111","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6740:218:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65729,"nodeType":"ExpressionStatement","src":"6740:218:111"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"6569:9:111","parameters":{"id":65697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65692,"mutability":"mutable","name":"to","nameLocation":"6596:2:111","nodeType":"VariableDeclaration","scope":65732,"src":"6588:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65691,"name":"address","nodeType":"ElementaryTypeName","src":"6588:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65694,"mutability":"mutable","name":"id","nameLocation":"6616:2:111","nodeType":"VariableDeclaration","scope":65732,"src":"6608:10:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65693,"name":"uint256","nodeType":"ElementaryTypeName","src":"6608:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":65696,"mutability":"mutable","name":"data","nameLocation":"6641:4:111","nodeType":"VariableDeclaration","scope":65732,"src":"6628:17:111","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":65695,"name":"bytes","nodeType":"ElementaryTypeName","src":"6628:5:111","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6578:73:111"},"returnParameters":{"id":65698,"nodeType":"ParameterList","parameters":[],"src":"6669:0:111"},"scope":65733,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":65192,"nodeType":"StructuredDocumentation","src":"58:168:111","text":"@notice Modern, minimalist, and gas efficient ERC-721 implementation.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)"},"fullyImplemented":false,"linearizedBaseContracts":[65733],"name":"ERC721","nameLocation":"244:6:111","scope":65754,"usedErrors":[]},{"id":65753,"nodeType":"ContractDefinition","src":"7148:256:111","nodes":[{"id":65752,"nodeType":"FunctionDefinition","src":"7192:210:111","nodes":[],"body":{"id":65751,"nodeType":"Block","src":"7333:69:111","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":65747,"name":"ERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65753,"src":"7350:19:111","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721TokenReceiver_$65753_$","typeString":"type(contract ERC721TokenReceiver)"}},"id":65748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":65752,"src":"7350:36:111","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function ERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":65749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"7350:45:111","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":65746,"id":65750,"nodeType":"Return","src":"7343:52:111"}]},"functionSelector":"150b7a02","implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"7201:16:111","parameters":{"id":65743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65752,"src":"7227:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65735,"name":"address","nodeType":"ElementaryTypeName","src":"7227:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65738,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65752,"src":"7244:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65737,"name":"address","nodeType":"ElementaryTypeName","src":"7244:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":65740,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65752,"src":"7261:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65739,"name":"uint256","nodeType":"ElementaryTypeName","src":"7261:7:111","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":65742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65752,"src":"7278:14:111","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":65741,"name":"bytes","nodeType":"ElementaryTypeName","src":"7278:5:111","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7217:81:111"},"returnParameters":{"id":65746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65745,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":65752,"src":"7325:6:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":65744,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7325:6:111","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"7324:8:111"},"scope":65753,"stateMutability":"nonpayable","virtual":true,"visibility":"external"}],"abstract":true,"baseContracts":[],"canonicalName":"ERC721TokenReceiver","contractDependencies":[],"contractKind":"contract","documentation":{"id":65734,"nodeType":"StructuredDocumentation","src":"6969:179:111","text":"@notice A generic interface for a contract which properly accepts ERC721 tokens.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)"},"fullyImplemented":true,"linearizedBaseContracts":[65753],"name":"ERC721TokenReceiver","nameLocation":"7166:19:111","scope":65754,"usedErrors":[]}],"license":"MIT"},"id":111}