[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "typeCount", "type": "uint256" }, { "internalType": "string", "name": "baseURI", "type": "string" }, { "internalType": "string", "name": "creator_", "type": "string" }, { "internalType": "address", "name": "niftyRegistryContract", "type": "address" }, { "internalType": "address", "name": "defaultOwner", "type": "address" } ], "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": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "fromAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toAddress", "type": "address" } ], "name": "ConsecutiveTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "contract IERC20", "name": "token", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ERC20PaymentReleased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "PaymentReleased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "niftyType", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "previousReceiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newReceiver", "type": "address" } ], "name": "RoyaltyReceiverUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "_defaultOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "niftyType", "type": "uint256" } ], "name": "_getFinalized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_id", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "_mintCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "_percentageRoyalty", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_percentageTotal", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_typeCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "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": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "creator", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "niftyType", "type": "uint256" } ], "name": "getRoyaltyReceiverByNiftyType", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getRoyaltyReceiverByTokenId", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "splitterImplementation", "type": "address" }, { "internalType": "uint256", "name": "niftyType", "type": "uint256" }, { "internalType": "address[]", "name": "payees", "type": "address[]" }, { "internalType": "uint256[]", "name": "shares_", "type": "uint256[]" } ], "name": "initializeRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "midLevelMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "niftyType", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "mintNifty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "token", "type": "address" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "pendingRoyaltyPayment", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "pendingRoyaltyPayment", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "account", "type": "address" } ], "name": "releaseRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "token", "type": "address" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "releaseRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "niftyType", "type": "uint256" } ], "name": "setFinalized", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "niftyType", "type": "uint256" }, { "internalType": "string", "name": "hashIPFS", "type": "string" } ], "name": "setNiftyIPFSHash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "niftyType", "type": "uint256" }, { "internalType": "string", "name": "niftyName", "type": "string" } ], "name": "setNiftyName", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "niftyType", "type": "uint256" }, { "internalType": "uint256", "name": "percentageRoyalty_", "type": "uint256" } ], "name": "setRoyaltyBips", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenIPFSHash", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenName", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "topLevelMultiplier", "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" } ]
6101606040523480156200001257600080fd5b5060405162003ab238038062003ab283398101604081905262000035916200027e565b6001600160601b0319606083901b16608052875188908890889087908990869088906200006a9060009060208a019062000104565b5085516200008090600190602089019062000104565b5060a085905283516200009b90600290602087019062000104565b5060c08390526001600160601b0319606083901b1660e052620186a061012052620000cb85633b9aca0062000370565b6101005250508751620000ed9550600994506020890193509150620001049050565b50506127106101405250620003f195505050505050565b82805462000112906200039e565b90600052602060002090601f01602090048101928262000136576000855562000181565b82601f106200015157805160ff191683800117855562000181565b8280016001018555821562000181579182015b828111156200018157825182559160200191906001019062000164565b506200018f92915062000193565b5090565b5b808211156200018f576000815560010162000194565b80516001600160a01b0381168114620001c257600080fd5b919050565b600082601f830112620001d957600080fd5b81516001600160401b0380821115620001f657620001f6620003db565b604051601f8301601f19908116603f01168101908282118183101715620002215762000221620003db565b816040528381526020925086838588010111156200023e57600080fd5b600091505b8382101562000262578582018301518183018401529082019062000243565b83821115620002745760008385830101525b9695505050505050565b600080600080600080600080610100898b0312156200029c57600080fd5b88516001600160401b0380821115620002b457600080fd5b620002c28c838d01620001c7565b995060208b0151915080821115620002d957600080fd5b620002e78c838d01620001c7565b985060408b0151975060608b0151965060808b01519150808211156200030c57600080fd5b6200031a8c838d01620001c7565b955060a08b01519150808211156200033157600080fd5b50620003408b828c01620001c7565b9350506200035160c08a01620001aa565b91506200036160e08a01620001aa565b90509295985092959890939650565b60008160001904831182151516156200039957634e487b7160e01b600052601160045260246000fd5b500290565b600181811c90821680620003b357607f821691505b60208210811415620003d557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160601c60a05160c05160e05160601c6101005161012051610140516135d4620004de6000396000818161058301528181610b0e015261151e0152600081816103d8015281816123e00152612945015260008181610549015281816123b10152818161240401526129700152600081816103b1015281816110fe0152818161116901526111bc0152600081816103ff01528181610cdc01528181611b4f01528181611c47015261216701526000610321015260008181610bef01528181610f430152818161122d01528181611446015281816115e6015281816119640152611fcb01526135d46000f3fe608060405234801561001057600080fd5b50600436106102c75760003560e01c80636352211e1161017b578063a80ce4b4116100d8578063d37166301161008c578063e725f87711610071578063e725f87714610665578063e985e9c514610678578063f5abac49146106b457600080fd5b8063d37166301461063f578063d7a853be1461065257600080fd5b8063b536d0fa116100bd578063b536d0fa14610606578063b88d4fde14610619578063c87b56dd1461062c57600080fd5b8063a80ce4b4146105d3578063acd074f5146105e657600080fd5b80638ddadb201161012f57806395d89b411161011457806395d89b41146105a55780639dd5e481146105ad578063a22cb465146105c057600080fd5b80638ddadb201461056b5780639121ac0d1461057e57600080fd5b80637889cc16116101605780637889cc161461051e5780638a0fc1da146105315780638ca00c0d1461054457600080fd5b80636352211e146104f857806370a082311461050b57600080fd5b80632276f3f21161022957806342842e0e116101dd5780634fba84ca116101c25780634fba84ca146104b257806355f804b3146104c55780635f2ef9dc146104d857600080fd5b806342842e0e1461048c57806342966c681461049f57600080fd5b80632a55205a1161020e5780632a55205a146104345780632b6db05514610466578063396478d31461047957600080fd5b80632276f3f2146103fa57806323b872dd1461042157600080fd5b806306fdde0311610280578063095ea7b311610265578063095ea7b314610397578063139fed7c146103ac5780631a521760146103d357600080fd5b806306fdde031461037c578063081812fc1461038457600080fd5b806302d05d3f116102b157806302d05d3f14610307578063051802371461031c578063051c62ae1461035157600080fd5b8062cd587c146102cc57806301ffc9a7146102f4575b600080fd5b6102df6102da36600461319f565b6106c7565b60405190151581526020015b60405180910390f35b6102df610302366004613130565b610705565b61030f610749565b6040516102eb9190613402565b6103437f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016102eb565b61036461035f36600461319f565b6107db565b6040516001600160a01b0390911681526020016102eb565b61030f6107ee565b61036461039236600461319f565b6107fd565b6103aa6103a536600461305b565b6108a8565b005b6103647f000000000000000000000000000000000000000000000000000000000000000081565b6103437f000000000000000000000000000000000000000000000000000000000000000081565b6103437f000000000000000000000000000000000000000000000000000000000000000081565b6103aa61042f366004612f6c565b6109da565b610447610442366004613218565b610a62565b604080516001600160a01b0390931683526020830191909152016102eb565b6103aa6104743660046131d1565b610bda565b6103aa610487366004612f16565b610cd5565b6103aa61049a366004612f6c565b610e8c565b6103aa6104ad36600461319f565b610ea7565b6103aa6104c0366004613218565b610f2e565b6103aa6104d336600461316a565b611218565b6103436104e636600461319f565b600d6020526000908152604090205481565b61036461050636600461319f565b61130c565b610343610519366004612f16565b611397565b6103aa61052c366004613218565b611431565b61036461053f36600461319f565b6115c6565b6103437f000000000000000000000000000000000000000000000000000000000000000081565b6103aa610579366004613087565b6115d1565b6103437f000000000000000000000000000000000000000000000000000000000000000081565b61030f611940565b6103aa6105bb36600461319f565b61194f565b6103aa6105ce36600461302d565b611a82565b6103436105e1366004612f33565b611b47565b6103436105f436600461319f565b600a6020526000908152604090205481565b610343610614366004612f16565b611c3f565b6103aa610627366004612fad565b611d2e565b61030f61063a36600461319f565b611db6565b61030f61064d36600461319f565b611e7b565b6103aa6106603660046131d1565b611fb6565b61030f61067336600461319f565b6120ab565b6102df610686366004612f33565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b6103aa6106c2366004612f33565b612160565b600080600e816106d96101008661342d565b8152602001908152602001600020549050610100836106f891906134f9565b6001901b16151592915050565b60006001600160e01b031982167f2a55205a00000000000000000000000000000000000000000000000000000000148061074357506107438261232b565b92915050565b606060098054610758906134a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610784906134a3565b80156107d15780601f106107a6576101008083540402835291602001916107d1565b820191906000526020600020905b8154815290600101906020018083116107b457829003601f168201915b5050505050905090565b60006107436107e9836123ad565b612438565b606060008054610758906134a3565b6000818152600560205260408120546001600160a01b031661088c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506000908152600760205260409020546001600160a01b031690565b60006108b38261130c565b9050806001600160a01b0316836001600160a01b0316141561093d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610883565b336001600160a01b038216148061095957506109598133610686565b6109cb5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610883565b6109d583836124b2565b505050565b6109e5335b82612520565b610a575760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610883565b6109d5838383612628565b60008281526005602052604081205481906001600160a01b0316610aee5760405162461bcd60e51b815260206004820152603a60248201527f4e696674794275696c646572496e7374616e63653a206f70657261746f72207160448201527f7565727920666f72206e6f6e6578697374656e7420746f6b656e0000000000006064820152608401610883565b6000610af9856123ad565b6000818152600a6020526040812054919250907f000000000000000000000000000000000000000000000000000000000000000090610b389087613441565b610b42919061342d565b90506000610b4f83612438565b90506001600160a01b038116610bcd5760405162461bcd60e51b815260206004820152602960248201527f4e696674794275696c646572496e7374616e63653a204e6f20726f79616c747960448201527f20726563656976657200000000000000000000000000000000000000000000006064820152608401610883565b93509150505b9250929050565b6040516371be737d60e11b81523360048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b0383169063e37ce6fa9060240160206040518083038186803b158015610c3e57600080fd5b505afa158015610c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c769190613113565b905080610cc55760405162461bcd60e51b815260206004820152601f60248201527f4e69667479456e746974793a20496e76616c6964206d73672e73656e646572006044820152606401610883565b610ccf84846127f5565b50505050565b600060015b7f00000000000000000000000000000000000000000000000000000000000000008111610e3e576000818152600b60205260409020546001600160a01b03168015610e2b57604051632bab85df60e21b81526001600160a01b038581166004830152829160009183169063aeae177c9060240160206040518083038186803b158015610d6557600080fd5b505afa158015610d79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9d91906131b8565b90508015610e2857610daf8186613415565b6040517f191655870000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015291965090831690631916558790602401600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505050505b50505b5080610e36816134de565b915050610cda565b508015610e8857604080516001600160a01b0384168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a15b5050565b6109d583838360405180602001604052806000815250611d2e565b610eb0336109df565b610f225760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f766564000000000000000000000000000000006064820152608401610883565b610f2b816128a2565b50565b6040516371be737d60e11b81523360048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b0383169063e37ce6fa9060240160206040518083038186803b158015610f9257600080fd5b505afa158015610fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fca9190613113565b9050806110195760405162461bcd60e51b815260206004820152601f60248201527f4e69667479456e746974793a20496e76616c6964206d73672e73656e646572006044820152606401610883565b611022846106c7565b156110955760405162461bcd60e51b815260206004820152603660248201527f4e696674794275696c646572496e7374616e63653a206d696e74696e6720636f60448201527f6e636c7564656420666f72206e696674792074797065000000000000000000006064820152608401610883565b6000848152600d60205260408120546110af906001613415565b905060006110bd868361293d565b9050600060016110cd8784613415565b6110d79190613460565b9050815b81811161113b57600081815260056020526040902080546001600160a01b0319167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031617905580611133816134de565b9150506110db565b506000878152600d60205260408120805488929061115a908490613415565b90915550506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260066020526040812080548892906111a7908490613415565b90915550506040518181526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169060009084907fdeaa91b6123d068f5821d0fb0678463d1a8a6079fe8af5de3ce5e896dcf9133d9060200160405180910390a450505050505050565b6040516371be737d60e11b81523360048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b0383169063e37ce6fa9060240160206040518083038186803b15801561127c57600080fd5b505afa158015611290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b49190613113565b9050806113035760405162461bcd60e51b815260206004820152601f60248201527f4e69667479456e746974793a20496e76616c6964206d73672e73656e646572006044820152606401610883565b6109d5836129a5565b6000818152600560205260408120546001600160a01b0316806107435760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610883565b60006001600160a01b0382166114155760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610883565b506001600160a01b031660009081526006602052604090205490565b6040516371be737d60e11b81523360048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b0383169063e37ce6fa9060240160206040518083038186803b15801561149557600080fd5b505afa1580156114a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cd9190613113565b90508061151c5760405162461bcd60e51b815260206004820152601f60248201527f4e69667479456e746974793a20496e76616c6964206d73672e73656e646572006044820152606401610883565b7f00000000000000000000000000000000000000000000000000000000000000008311156115b25760405162461bcd60e51b815260206004820152603560248201527f4e696674794275696c646572496e7374616e63653a20496c6c6567616c20617260448201527f67756d656e74206d6f7265207468616e203130302500000000000000000000006064820152608401610883565b50506000918252600a602052604090912055565b600061074382612438565b6040516371be737d60e11b81523360048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b0383169063e37ce6fa9060240160206040518083038186803b15801561163557600080fd5b505afa158015611649573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166d9190613113565b9050806116bc5760405162461bcd60e51b815260206004820152601f60248201527f4e69667479456e746974793a20496e76616c6964206d73672e73656e646572006044820152606401610883565b60006116c788612438565b90506000600187141561173f57878760008181106116e7576116e7613539565b90506020020160208101906116fc9190612f16565b60008a8152600c6020908152604080832080546001600160a01b0386166001600160a01b031991821617909155600b9092529091208054909116905590506118ef565b6000898152600c60205260409081902080546001600160a01b0319169055516301ffc9a760e01b81527f37de79fc0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038b16906301ffc9a79060240160206040518083038186803b1580156117ba57600080fd5b505afa1580156117ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f29190613113565b61183e5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420612076616c6964207061796d656e742073706c6974746572000000006044820152606401610883565b6118478a6129b8565b6040517f7fbbe46f0000000000000000000000000000000000000000000000000000000081529091506001600160a01b03821690637fbbe46f90611895908b908b908b908b90600401613365565b600060405180830381600087803b1580156118af57600080fd5b505af11580156118c3573d6000803e3d6000fd5b50505060008a8152600b6020526040902080546001600160a01b0319166001600160a01b038416179055505b604080516001600160a01b038085168252831660208201528a917f834a47bfbb51ad808d8649527d9bf540f58cc71dc1093ae2249c8b230575ce98910160405180910390a250505050505050505050565b606060018054610758906134a3565b6040516371be737d60e11b81523360048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b0383169063e37ce6fa9060240160206040518083038186803b1580156119b357600080fd5b505afa1580156119c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119eb9190613113565b905080611a3a5760405162461bcd60e51b815260206004820152601f60248201527f4e69667479456e746974793a20496e76616c6964206d73672e73656e646572006044820152606401610883565b6000611a486101008561342d565b6000818152600e6020526040902054909150611a66610100866134f9565b6000928352600e6020526040909220600190921b179055505050565b6001600160a01b038216331415611adb5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610883565b3360008181526008602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60008060015b7f00000000000000000000000000000000000000000000000000000000000000008111611c37576000818152600b60205260409020546001600160a01b03168015611c245760405163049268bd60e31b81526001600160a01b038781166004830152868116602483015282919082169063249345e89060440160206040518083038186803b158015611bde57600080fd5b505afa158015611bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1691906131b8565b611c209085613415565b9350505b5080611c2f816134de565b915050611b4d565b509392505050565b60008060015b7f00000000000000000000000000000000000000000000000000000000000000008111611d27576000818152600b60205260409020546001600160a01b03168015611d1457604051632bab85df60e21b81526001600160a01b03868116600483015282919082169063aeae177c9060240160206040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0691906131b8565b611d109085613415565b9350505b5080611d1f816134de565b915050611c45565b5092915050565b611d383383612520565b611daa5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610883565b610ccf84848484612a6e565b6000818152600560205260409020546060906001600160a01b0316611e435760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610883565b6000611e4e83612af7565b9050600281604051602001611e64929190613282565b604051602081830303815290604052915050919050565b6000818152600560205260409020546060906001600160a01b0316611f085760405162461bcd60e51b815260206004820152603560248201527f4552433732314d657461646174613a204950465320686173682071756572792060448201527f666f72206e6f6e6578697374656e7420746f6b656e00000000000000000000006064820152608401610883565b6000611f13836123ad565b6000818152600460205260409020805491925090611f30906134a3565b80601f0160208091040260200160405190810160405280929190818152602001828054611f5c906134a3565b8015611fa95780601f10611f7e57610100808354040283529160200191611fa9565b820191906000526020600020905b815481529060010190602001808311611f8c57829003601f168201915b5050505050915050919050565b6040516371be737d60e11b81523360048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b0383169063e37ce6fa9060240160206040518083038186803b15801561201a57600080fd5b505afa15801561202e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120529190613113565b9050806120a15760405162461bcd60e51b815260206004820152601f60248201527f4e69667479456e746974793a20496e76616c6964206d73672e73656e646572006044820152606401610883565b610ccf8484612c29565b6000818152600560205260409020546060906001600160a01b03166121385760405162461bcd60e51b815260206004820152603060248201527f4552433732314d657461646174613a204e616d6520717565727920666f72206e60448201527f6f6e6578697374656e7420746f6b656e000000000000000000000000000000006064820152608401610883565b6000612143836123ad565b6000818152600360205260409020805491925090611f30906134a3565b600060015b7f000000000000000000000000000000000000000000000000000000000000000081116122d9576000818152600b60205260409020546001600160a01b031680156122c65760405163049268bd60e31b81526001600160a01b0386811660048301528581166024830152829160009183169063249345e89060440160206040518083038186803b1580156121f857600080fd5b505afa15801561220c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223091906131b8565b905080156122c3576122428186613415565b6040517f48b750440000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301528881166024830152919650908316906348b7504490604401600060405180830381600087803b1580156122aa57600080fd5b505af11580156122be573d6000803e3d6000fd5b505050505b50505b50806122d1816134de565b915050612165565b5080156109d557604080516001600160a01b038481168252602082018490528516917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a2505050565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061238e57506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061074357506301ffc9a760e01b6001600160e01b0319831614610743565b60007f000000000000000000000000000000000000000000000000000000000000000082116123de57506000919050565b7f00000000000000000000000000000000000000000000000000000000000000006124297f000000000000000000000000000000000000000000000000000000000000000084613460565b610743919061342d565b919050565b6000818152600c60205260408120546001600160a01b03161561247157506000908152600c60205260409020546001600160a01b031690565b6000828152600b60205260409020546001600160a01b0316156124aa57506000908152600b60205260409020546001600160a01b031690565b506000919050565b600081815260076020526040902080546001600160a01b0319166001600160a01b03841690811790915581906124e78261130c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600560205260408120546001600160a01b03166125aa5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e00000000000000000000000000000000000000006064820152608401610883565b60006125b58361130c565b9050806001600160a01b0316846001600160a01b031614806125f05750836001600160a01b03166125e5846107fd565b6001600160a01b0316145b8061262057506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661263b8261130c565b6001600160a01b0316146126b75760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610883565b6001600160a01b0382166127325760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610883565b61273d6000826124b2565b6001600160a01b0383166000908152600660205260408120805460019290612766908490613460565b90915550506001600160a01b0382166000908152600660205260408120805460019290612794908490613415565b909155505060008181526005602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152600460205260409020805461280e906134a3565b1590506128835760405162461bcd60e51b815260206004820152602560248201527f4552433732314d657461646174613a2049504653206861736820616c7265616460448201527f79207365740000000000000000000000000000000000000000000000000000006064820152608401610883565b600082815260046020908152604090912082516109d592840190612da2565b60006128ad8261130c565b90506128ba6000836124b2565b6001600160a01b03811660009081526006602052604081208054600192906128e3908490613460565b909155505060008281526005602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60008161296a7f000000000000000000000000000000000000000000000000000000000000000085613441565b612994907f0000000000000000000000000000000000000000000000000000000000000000613415565b61299e9190613415565b9392505050565b8051610e88906002906020840190612da2565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09150506001600160a01b0381166124335760405162461bcd60e51b815260206004820152601660248201527f455243313136373a20637265617465206661696c6564000000000000000000006044820152606401610883565b612a79848484612628565b612a8584848484612c48565b610ccf5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610883565b606081612b3757505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115612b615780612b4b816134de565b9150612b5a9050600a8361342d565b9150612b3b565b60008167ffffffffffffffff811115612b7c57612b7c61354f565b6040519080825280601f01601f191660200182016040528015612ba6576020820181803683370190505b5090505b841561262057612bbb600183613460565b9150612bc8600a866134f9565b612bd3906030613415565b60f81b818381518110612be857612be8613539565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612c22600a8661342d565b9450612baa565b600082815260036020908152604090912082516109d592840190612da2565b6000833b15612d9757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612c83903390899088908890600401613329565b602060405180830381600087803b158015612c9d57600080fd5b505af1925050508015612ccd575060408051601f3d908101601f19168201909252612cca9181019061314d565b60015b612d7d573d808015612cfb576040519150601f19603f3d011682016040523d82523d6000602084013e612d00565b606091505b508051612d755760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610883565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612620565b506001949350505050565b828054612dae906134a3565b90600052602060002090601f016020900481019282612dd05760008555612e16565b82601f10612de957805160ff1916838001178555612e16565b82800160010185558215612e16579182015b82811115612e16578251825591602001919060010190612dfb565b50612e22929150612e26565b5090565b5b80821115612e225760008155600101612e27565b600067ffffffffffffffff80841115612e5657612e5661354f565b604051601f8501601f19908116603f01168101908282118183101715612e7e57612e7e61354f565b81604052809350858152868686011115612e9757600080fd5b858560208301376000602087830101525050509392505050565b60008083601f840112612ec357600080fd5b50813567ffffffffffffffff811115612edb57600080fd5b6020830191508360208260051b8501011115610bd357600080fd5b600082601f830112612f0757600080fd5b61299e83833560208501612e3b565b600060208284031215612f2857600080fd5b813561299e81613565565b60008060408385031215612f4657600080fd5b8235612f5181613565565b91506020830135612f6181613565565b809150509250929050565b600080600060608486031215612f8157600080fd5b8335612f8c81613565565b92506020840135612f9c81613565565b929592945050506040919091013590565b60008060008060808587031215612fc357600080fd5b8435612fce81613565565b93506020850135612fde81613565565b925060408501359150606085013567ffffffffffffffff81111561300157600080fd5b8501601f8101871361301257600080fd5b61302187823560208401612e3b565b91505092959194509250565b6000806040838503121561304057600080fd5b823561304b81613565565b91506020830135612f618161357a565b6000806040838503121561306e57600080fd5b823561307981613565565b946020939093013593505050565b600080600080600080608087890312156130a057600080fd5b86356130ab81613565565b955060208701359450604087013567ffffffffffffffff808211156130cf57600080fd5b6130db8a838b01612eb1565b909650945060608901359150808211156130f457600080fd5b5061310189828a01612eb1565b979a9699509497509295939492505050565b60006020828403121561312557600080fd5b815161299e8161357a565b60006020828403121561314257600080fd5b813561299e81613588565b60006020828403121561315f57600080fd5b815161299e81613588565b60006020828403121561317c57600080fd5b813567ffffffffffffffff81111561319357600080fd5b61262084828501612ef6565b6000602082840312156131b157600080fd5b5035919050565b6000602082840312156131ca57600080fd5b5051919050565b600080604083850312156131e457600080fd5b82359150602083013567ffffffffffffffff81111561320257600080fd5b61320e85828601612ef6565b9150509250929050565b6000806040838503121561322b57600080fd5b50508035926020909101359150565b60008151808452613252816020860160208601613477565b601f01601f19169290920160200192915050565b60008151613278818560208601613477565b9290920192915050565b600080845481600182811c91508083168061329e57607f831692505b60208084108214156132be57634e487b7160e01b86526022600452602486fd5b8180156132d257600181146132e357613310565b60ff19861689528489019650613310565b60008b81526020902060005b868110156133085781548b8201529085019083016132ef565b505084890196505b5050505050506133208185613266565b95945050505050565b60006001600160a01b0380871683528086166020840152508360408301526080606083015261335b608083018461323a565b9695505050505050565b6040808252810184905260008560608301825b878110156133a857823561338b81613565565b6001600160a01b0316825260209283019290910190600101613378565b5083810360208501528481527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8511156133e157600080fd5b8460051b915081866020830137600091016020019081529695505050505050565b60208152600061299e602083018461323a565b600082198211156134285761342861350d565b500190565b60008261343c5761343c613523565b500490565b600081600019048311821515161561345b5761345b61350d565b500290565b6000828210156134725761347261350d565b500390565b60005b8381101561349257818101518382015260200161347a565b83811115610ccf5750506000910152565b600181811c908216806134b757607f821691505b602082108114156134d857634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156134f2576134f261350d565b5060010190565b60008261350857613508613523565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610f2b57600080fd5b8015158114610f2b57600080fd5b6001600160e01b031981168114610f2b57600080fdfea2646970667358221220fa1f2c25c9387dca1499fcd6364d92939002770f7e2dfbf46ec0fb1f14fe47f164736f6c6343000806003300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000006e53130ddff21e3bc963ee902005223b9a202106000000000000000000000000e052113bd7d7700d623414a0a4585bcae754e9d5000000000000000000000000000000000000000000000000000000000000001d484f444c2041697264726f7020627920476176696e205368617069726f0000000000000000000000000000000000000000000000000000000000000000000019484f444c41495244524f504259474156494e5348415049524f00000000000000000000000000000000000000000000000000000000000000000000000000002a68747470733a2f2f6170692e6e69667479676174657761792e636f6d2f686f646c2d61697264726f702f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d476176696e205368617069726f00000000000000000000000000000000000000