[ { "inputs": [ { "internalType": "address", "name": "factoryAddress_", "type": "address" }, { "internalType": "address", "name": "metadataAddress_", "type": "address" }, { "internalType": "address", "name": "mintingFeeReceiver_", "type": "address" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint256", "name": "mintingFeePercentage_", "type": "uint256" }, { "internalType": "uint256", "name": "ratio_", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner_", "type": "address" }, { "indexed": true, "internalType": "address", "name": "manager_", "type": "address" } ], "name": "ManagerAdd", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner_", "type": "address" }, { "indexed": true, "internalType": "address", "name": "manager_", "type": "address" } ], "name": "ManagerRemove", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "manager_", "type": "address" } ], "name": "addManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "collectionPreview", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "factoryAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBurnPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getManagers", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getManagersLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMintPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isManager", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "managers", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "metadataAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintingFeePercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintingFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pricingType", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ratio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "manager_", "type": "address" } ], "name": "removeManagerByAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index_", "type": "uint256" } ], "name": "removeManagerByIndex", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "removeYourselfAsManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "metadataAddress_", "type": "address" } ], "name": "setMetadataAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "mintingFeePercentage_", "type": "uint256" } ], "name": "setMintingFeePercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "mintingFeeReceiver_", "type": "address" } ], "name": "setMintingFeeReceiver", "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": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a060405260016011553480156200001657600080fd5b506040516200347638038062003476833981016040819052620000399162000201565b8383600062000049838262000346565b50600162000058828262000346565b505050620000756200006f620000c960201b60201c565b620000cd565b6001600d55600e80546001600160a01b03199081166001600160a01b03998a1617909155600f8054821697891697909717909655601080549096169490961693909317909355506012555060805262000412565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200013757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200016457600080fd5b81516001600160401b03808211156200018157620001816200013c565b604051601f8301601f19908116603f01168101908282118183101715620001ac57620001ac6200013c565b81604052838152602092508683858801011115620001c957600080fd5b600091505b83821015620001ed5785820183015181830184015290820190620001ce565b600093810190920192909252949350505050565b600080600080600080600060e0888a0312156200021d57600080fd5b62000228886200011f565b965062000238602089016200011f565b955062000248604089016200011f565b60608901519095506001600160401b03808211156200026657600080fd5b620002748b838c0162000152565b955060808a01519150808211156200028b57600080fd5b506200029a8a828b0162000152565b93505060a0880151915060c0880151905092959891949750929550565b600181811c90821680620002cc57607f821691505b602082108103620002ed57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034157600081815260208120601f850160051c810160208610156200031c5750805b601f850160051c820191505b818110156200033d5782815560010162000328565b5050505b505050565b81516001600160401b038111156200036257620003626200013c565b6200037a81620003738454620002b7565b84620002f3565b602080601f831160018114620003b25760008415620003995750858301515b600019600386901b1c1916600185901b1785556200033d565b600085815260208120601f198616915b82811015620003e357888601518255948401946001909101908401620003c2565b5085821015620004025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051613041620004356000396000818161055501526124e901526130416000f3fe6080604052600436106102465760003560e01c80636a62784211610139578063a8d088bb116100b6578063e17b25af1161007a578063e17b25af1461068b578063e985e9c5146106ab578063f02a6316146106f4578063f2fde38b14610727578063f3ae241514610747578063f883a6961461077757600080fd5b8063a8d088bb146105ff578063b700230914610621578063b88d4fde14610636578063c87b56dd14610656578063d570fb341461067657600080fd5b80638da5cb5b116100fd5780638da5cb5b1461057757806395d89b4114610595578063966dae0e146105aa578063a22cb465146105ca578063a7f93ebd146105ea57600080fd5b80636a627842146104db5780636eb3500d146104ee57806370a082311461050e578063715018a61461052e57806371ca337d1461054357600080fd5b80632f745c59116101c757806342966c681161018b57806342966c681461043b5780634a4f496d1461045b5780634f6ccce71461047b5780635ab5de8a1461049b5780636352211e146104bb57600080fd5b80632f745c59146103a557806336bb5080146103c55780633d39c260146103e55780633d5f707b1461040557806342842e0e1461041b57600080fd5b80630bb0ca1f1161020e5780630bb0ca1f1461031c57806318160ddd1461033157806323b872dd146103505780632ae6218d146103705780632d06177a1461038557600080fd5b806301ffc9a71461024b5780630222835e1461028057806306fdde03146102b8578063081812fc146102da578063095ea7b3146102fa575b600080fd5b34801561025757600080fd5b5061026b610266366004612990565b610797565b60405190151581526020015b60405180910390f35b34801561028c57600080fd5b506010546102a0906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b3480156102c457600080fd5b506102cd6107a8565b6040516102779190612a04565b3480156102e657600080fd5b506102a06102f5366004612a17565b61083a565b34801561030657600080fd5b5061031a610315366004612a45565b610861565b005b34801561032857600080fd5b506102cd61097b565b34801561033d57600080fd5b506008545b604051908152602001610277565b34801561035c57600080fd5b5061031a61036b366004612a71565b6109f1565b34801561037c57600080fd5b50610342610a22565b34801561039157600080fd5b5061031a6103a0366004612ab2565b610ab6565b3480156103b157600080fd5b506103426103c0366004612a45565b610bc7565b3480156103d157600080fd5b5061031a6103e0366004612a17565b610c5d565b3480156103f157600080fd5b506102a0610400366004612a17565b610d0d565b34801561041157600080fd5b5061034260125481565b34801561042757600080fd5b5061031a610436366004612a71565b610d37565b34801561044757600080fd5b50610342610456366004612a17565b610d52565b34801561046757600080fd5b5061031a610476366004612ab2565b61115c565b34801561048757600080fd5b50610342610496366004612a17565b611286565b3480156104a757600080fd5b5061031a6104b6366004612ab2565b611319565b3480156104c757600080fd5b506102a06104d6366004612a17565b611476565b6103426104e9366004612ab2565b6114d6565b3480156104fa57600080fd5b50600f546102a0906001600160a01b031681565b34801561051a57600080fd5b50610342610529366004612ab2565b6117e7565b34801561053a57600080fd5b5061031a61186d565b34801561054f57600080fd5b506103427f000000000000000000000000000000000000000000000000000000000000000081565b34801561058357600080fd5b50600a546001600160a01b03166102a0565b3480156105a157600080fd5b506102cd611881565b3480156105b657600080fd5b50600e546102a0906001600160a01b031681565b3480156105d657600080fd5b5061031a6105e5366004612acf565b611890565b3480156105f657600080fd5b5061034261189f565b34801561060b57600080fd5b5061061461191c565b6040516102779190612b0d565b34801561062d57600080fd5b5061031a61197d565b34801561064257600080fd5b5061031a610651366004612bc9565b611a31565b34801561066257600080fd5b506102cd610671366004612a17565b611a69565b34801561068257600080fd5b50600b54610342565b34801561069757600080fd5b5061031a6106a6366004612ab2565b611aeb565b3480156106b757600080fd5b5061026b6106c6366004612c78565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561070057600080fd5b506102cd60405180604001604052806007815260200166626f6e64696e6760c81b81525081565b34801561073357600080fd5b5061031a610742366004612ab2565b611b51565b34801561075357600080fd5b5061026b610762366004612ab2565b600c6020526000908152604090205460ff1681565b34801561078357600080fd5b5061031a610792366004612a17565b611bc7565b60006107a282611d1f565b92915050565b6060600080546107b790612ca6565b80601f01602080910402602001604051908101604052809291908181526020018280546107e390612ca6565b80156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b5050505050905090565b600061084582611d44565b506000908152600460205260409020546001600160a01b031690565b600061086c82611476565b9050806001600160a01b0316836001600160a01b0316036108de5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806108fa57506108fa81336106c6565b61096c5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016108d5565b6109768383611da3565b505050565b600f54604051632e9a436560e01b81523060048201526060916001600160a01b031690632e9a436590602401600060405180830381865afa1580156109c4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109ec9190810190612ce0565b905090565b6109fb3382611e11565b610a175760405162461bcd60e51b81526004016108d590612d57565b610976838383611e90565b600080610a2e60085490565b90506002811015610a4157600091505090565b6000610a4c82612001565b90506000670de0b6b3a764000060125483610a679190612dba565b610a719190612dd1565b90506000670de0b6b3a764000060125484610a8c9190612dba565b610a969190612dd1565b905080610aa38385612df3565b610aad9190612df3565b94505050505090565b610abe612027565b6001600160a01b0381166000908152600c602052604090205460ff1615610b3a5760405162461bcd60e51b815260206004820152602a60248201527f4f776e61626c65576974684d616e61676572733a206d616e6167657220616c726044820152691958591e48185919195960b21b60648201526084016108d5565b6001600160a01b0381166000818152600c6020526040808220805460ff19166001908117909155600b8054918201815583527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b031916841790555133917ffef4b799044e6259138adfd04ab1cca8b2442cc484dd25672ae344fa8a9e208b91a350565b6000610bd2836117e7565b8210610c345760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016108d5565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b336000908152600c602052604090205460ff1680610c855750600a546001600160a01b031633145b610ca15760405162461bcd60e51b81526004016108d590612e06565b66b1a2bc2ec500008110610d085760405162461bcd60e51b815260206004820152602860248201527f4e6674373231426f6e64696e673a20666565206d757374206265206c6f776572604482015267207468616e20352560c01b60648201526084016108d5565b601255565b600b8181548110610d1d57600080fd5b6000918252602090912001546001600160a01b0316905081565b61097683838360405180602001604052806000815250611a31565b6000610d5c612081565b6000610d6760085490565b905060018111610db95760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742073656c6c20746865206c617374204e4654000000000000000060448201526064016108d5565b610dc33384611e11565b610e275760405162461bcd60e51b815260206004820152602f60248201527f4e6674373231426f6e64696e673a2063616c6c6572206973206e6f74206f776e60448201526e195c881b9bdc88185c1c1c9bdd9959608a1b60648201526084016108d5565b6000610e3282612001565b90506000670de0b6b3a764000060125483610e4d9190612dba565b610e579190612dd1565b90506000670de0b6b3a764000060125484610e729190612dba565b610e7c9190612dd1565b9050610e87866120da565b600e60009054906101000a90046001600160a01b03166001600160a01b031663632a40c66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe9190612e5b565b6001600160a01b0316633b0f94e8610f2b886000908152600260205260409020546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101859052604401600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506000610f9f600a546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114610fe9576040519150601f19603f3d011682016040523d82523d6000602084013e610fee565b606091505b5050905080611004576110018284612e78565b92505b6010546040516000916001600160a01b03169085908381818185875af1925050503d8060008114611051576040519150601f19603f3d011682016040523d82523d6000602084013e611056565b606091505b50509050806110775760405162461bcd60e51b81526004016108d590612e8b565b600033856110858689612df3565b61108f9190612df3565b604051600081818185875af1925050503d80600081146110cb576040519150601f19603f3d011682016040523d82523d6000602084013e6110d0565b606091505b505090508061112f5760405162461bcd60e51b815260206004820152602560248201527f4e6674373231426f6e64696e673a204661696c656420746f2073656e642070616044820152641e5b595b9d60da1b60648201526084016108d5565b8461113a8588612df3565b6111449190612df3565b9750505050505050506111576001600d55565b919050565b600e60009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d39190612e5b565b6001600160a01b0316336001600160a01b0316146112645760405162461bcd60e51b815260206004820152604260248201527f4e6674373231426f6e64696e673a204f6e6c7920666163746f7279206f776e6560448201527f722063616e207365742061206e6577206d696e74696e6746656552656365697660648201526132b960f11b608482015260a4016108d5565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b600061129160085490565b82106112f45760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016108d5565b6008828154811061130757611307612ed5565b90600052602060002001549050919050565b611321612027565b6001600160a01b0381166000908152600c60205260408120805460ff19169055600b54905b8181101561097657826001600160a01b0316600b828154811061136b5761136b612ed5565b6000918252602090912001546001600160a01b03160361146b57600b611392600184612df3565b815481106113a2576113a2612ed5565b600091825260209091200154600b80546001600160a01b0390921691839081106113ce576113ce612ed5565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b80548061140d5761140d612eeb565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0385169133917fc322b4d5159f72837eec184e14dde68867f91c6da39449fb9829f42121fc704d9190a3505050565b600101611346565b50565b6000818152600260205260408120546001600160a01b0316806107a25760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108d5565b60006114e0612081565b60006114eb60085490565b9050806000036115315761151261150a600a546001600160a01b031690565b60115461217d565b60116000815461152190612f01565b9091555061152e81612f01565b90505b600061153c82612316565b90506000670de0b6b3a7640000601254836115579190612dba565b6115619190612dd1565b90506000670de0b6b3a76400006012548461157c9190612dba565b6115869190612dd1565b9050806115938385612e78565b61159d9190612e78565b34146115e25760405162461bcd60e51b8152602060048201526014602482015273125b9cdd59999a58da595b9d081c185e5b595b9d60621b60448201526064016108d5565b600e60009054906101000a90046001600160a01b03166001600160a01b031663632a40c66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116599190612e5b565b604051630761f29d60e31b8152336004820152602481018490526001600160a01b039190911690633b0f94e890604401600060405180830381600087803b1580156116a357600080fd5b505af11580156116b7573d6000803e3d6000fd5b5050505060006116cf600a546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114611719576040519150601f19603f3d011682016040523d82523d6000602084013e61171e565b606091505b5050905080611734576117318284612e78565b92505b6010546040516000916001600160a01b03169085908381818185875af1925050503d8060008114611781576040519150601f19603f3d011682016040523d82523d6000602084013e611786565b606091505b50509050806117a75760405162461bcd60e51b81526004016108d590612e8b565b6117b38860115461217d565b6011600081546117c290612f01565b909155506011546117d590600190612df3565b96505050505050506111576001600d55565b60006001600160a01b0382166118515760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016108d5565b506001600160a01b031660009081526003602052604090205490565b611875612027565b61187f6000612333565b565b6060600180546107b790612ca6565b61189b338383612385565b5050565b6000806118b36118ae60085490565b612316565b90506000670de0b6b3a7640000601254836118ce9190612dba565b6118d89190612dd1565b90506000670de0b6b3a7640000601254846118f39190612dba565b6118fd9190612dd1565b90508061190a8385612e78565b6119149190612e78565b935050505090565b6060600b80548060200260200160405190810160405280929190818152602001828054801561083057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611956575050505050905090565b336000908152600c602052604090205460ff16806119a55750600a546001600160a01b031633145b6119c15760405162461bcd60e51b81526004016108d590612e06565b336000818152600c60205260408120805460ff19169055600b54905b8181101561097657826001600160a01b0316600b8281548110611a0257611a02612ed5565b6000918252602090912001546001600160a01b031603611a2957600b611392600184612df3565b6001016119dd565b611a3b3383611e11565b611a575760405162461bcd60e51b81526004016108d590612d57565b611a6384848484612453565b50505050565b6060611a7482611d44565b600f54604051633e1407fb60e21b8152306004820152602481018490526001600160a01b039091169063f8501fec90604401600060405180830381865afa158015611ac3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107a29190810190612ce0565b336000908152600c602052604090205460ff1680611b135750600a546001600160a01b031633145b611b2f5760405162461bcd60e51b81526004016108d590612e06565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b611b59612027565b6001600160a01b038116611bbe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108d5565b61147381612333565b611bcf612027565b600b8181548110611be257611be2612ed5565b60009182526020822001546040516001600160a01b039091169133917fc322b4d5159f72837eec184e14dde68867f91c6da39449fb9829f42121fc704d9190a36000600c6000600b8481548110611c3b57611c3b612ed5565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600b8054611c7f90600190612df3565b81548110611c8f57611c8f612ed5565b600091825260209091200154600b80546001600160a01b039092169183908110611cbb57611cbb612ed5565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b805480611cfa57611cfa612eeb565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60006001600160e01b0319821663780e9d6360e01b14806107a257506107a282612486565b6000818152600260205260409020546001600160a01b03166114735760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108d5565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611dd882611476565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611e1d83611476565b9050806001600160a01b0316846001600160a01b03161480611e6457506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80611e885750836001600160a01b0316611e7d8461083a565b6001600160a01b0316145b949350505050565b826001600160a01b0316611ea382611476565b6001600160a01b031614611ec95760405162461bcd60e51b81526004016108d590612f1a565b6001600160a01b038216611f2b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108d5565b611f3883838360016124d6565b826001600160a01b0316611f4b82611476565b6001600160a01b031614611f715760405162461bcd60e51b81526004016108d590612f1a565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000600282101561201457506000919050565b6107a2612022600184612df3565b6124e2565b600a546001600160a01b0316331461187f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108d5565b6002600d54036120d35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108d5565b6002600d55565b60006120e582611476565b90506120f58160008460016124d6565b6120fe82611476565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b0382166121d35760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108d5565b6000818152600260205260409020546001600160a01b0316156122385760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108d5565b6122466000838360016124d6565b6000818152600260205260409020546001600160a01b0316156122ab5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108d5565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008160000361232a576107a260016124e2565b6107a2826124e2565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036123e65760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108d5565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61245e848484611e90565b61246a848484846125b5565b611a635760405162461bcd60e51b81526004016108d590612f5f565b60006001600160e01b031982166380ac58cd60e01b14806124b757506001600160e01b03198216635b5e139f60e01b145b806107a257506301ffc9a760e01b6001600160e01b03198316146107a2565b611a63848484846126b6565b6000617a697f000000000000000000000000000000000000000000000000000000000000000061a455612516600186612df3565b612521906002612dba565b61252c906001612e78565b85612538600182612df3565b6125429190612dba565b61254c9190612dba565b612557866002612dba565b612562906001612e78565b61256d876001612e78565b6125779088612dba565b6125819190612dba565b61258b9190612df3565b61259790612710612dba565b6125a19190612dd1565b6125ab9190612dba565b6107a29190612dd1565b60006001600160a01b0384163b156126ab57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906125f9903390899088908890600401612fb1565b6020604051808303816000875af1925050508015612634575060408051601f3d908101601f1916820190925261263191810190612fee565b60015b612691573d808015612662576040519150601f19603f3d011682016040523d82523d6000602084013e612667565b606091505b5080516000036126895760405162461bcd60e51b81526004016108d590612f5f565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611e88565b506001949350505050565b60018111156127255760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b60648201526084016108d5565b816001600160a01b0385166127815761277c81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6127a4565b836001600160a01b0316856001600160a01b0316146127a4576127a485826127ea565b6001600160a01b0384166127c0576127bb81612887565b6127e3565b846001600160a01b0316846001600160a01b0316146127e3576127e38482612936565b5050505050565b600060016127f7846117e7565b6128019190612df3565b600083815260076020526040902054909150808214612854576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b60085460009061289990600190612df3565b600083815260096020526040812054600880549394509092849081106128c1576128c1612ed5565b9060005260206000200154905080600883815481106128e2576128e2612ed5565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061291a5761291a612eeb565b6001900381819060005260206000200160009055905550505050565b6000612941836117e7565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160e01b03198116811461147357600080fd5b6000602082840312156129a257600080fd5b81356129ad8161297a565b9392505050565b60005b838110156129cf5781810151838201526020016129b7565b50506000910152565b600081518084526129f08160208601602086016129b4565b601f01601f19169290920160200192915050565b6020815260006129ad60208301846129d8565b600060208284031215612a2957600080fd5b5035919050565b6001600160a01b038116811461147357600080fd5b60008060408385031215612a5857600080fd5b8235612a6381612a30565b946020939093013593505050565b600080600060608486031215612a8657600080fd5b8335612a9181612a30565b92506020840135612aa181612a30565b929592945050506040919091013590565b600060208284031215612ac457600080fd5b81356129ad81612a30565b60008060408385031215612ae257600080fd5b8235612aed81612a30565b915060208301358015158114612b0257600080fd5b809150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612b4e5783516001600160a01b031683529284019291840191600101612b29565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b9957612b99612b5a565b604052919050565b600067ffffffffffffffff821115612bbb57612bbb612b5a565b50601f01601f191660200190565b60008060008060808587031215612bdf57600080fd5b8435612bea81612a30565b93506020850135612bfa81612a30565b925060408501359150606085013567ffffffffffffffff811115612c1d57600080fd5b8501601f81018713612c2e57600080fd5b8035612c41612c3c82612ba1565b612b70565b818152886020838501011115612c5657600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60008060408385031215612c8b57600080fd5b8235612c9681612a30565b91506020830135612b0281612a30565b600181811c90821680612cba57607f821691505b602082108103612cda57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612cf257600080fd5b815167ffffffffffffffff811115612d0957600080fd5b8201601f81018413612d1a57600080fd5b8051612d28612c3c82612ba1565b818152856020838501011115612d3d57600080fd5b612d4e8260208301602086016129b4565b95945050505050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107a2576107a2612da4565b600082612dee57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107a2576107a2612da4565b60208082526035908201527f4f776e61626c65576974684d616e61676572733a2063616c6c6572206973206e60408201527437ba10309036b0b730b3b2b91037b91037bbb732b960591b606082015260800190565b600060208284031215612e6d57600080fd5b81516129ad81612a30565b808201808211156107a2576107a2612da4565b6020808252602a908201527f4e6674373231426f6e64696e673a204661696c656420746f2073656e642070726040820152696f746f636f6c2066656560b01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060018201612f1357612f13612da4565b5060010190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612fe4908301846129d8565b9695505050505050565b60006020828403121561300057600080fd5b81516129ad8161297a56fea2646970667358221220eef85338b45b4bd9c0a4ffdc9e974cd8b5e4697cf9964143b67f9a162c93183b64736f6c634300081100330000000000000000000000007c8fbdb5bd20ae239c3e3bfd775663c6989b17cd000000000000000000000000a48a1be7ef2ba7a80af426a7ca3697d3eabc53ba000000000000000000000000fbaf1d1fbc5a2fe2e48858a8a4585d5e7c12fc4a00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000470de4df8200000000000000000000000000000000000000000000000000e3aeb5737240a000000000000000000000000000000000000000000000000000000000000000000005486172657300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044852455300000000000000000000000000000000000000000000000000000000