[ { "inputs": [ { "internalType": "address", "name": "_signer", "type": "address" }, { "internalType": "address", "name": "_metadataAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ApproveToCaller", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "InvalidQueryRange", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "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": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "type": "event" }, { "anonymous": false, "inputs": [], "name": "MetadataAddressChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Minted", "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": [], "name": "SignerChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum LXDAOBuidler.Status", "name": "status", "type": "uint8" } ], "name": "StatusChanged", "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": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "activate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "recipients", "type": "address[]" }, { "internalType": "bytes[]", "name": "metadataURIs", "type": "bytes[]" } ], "name": "airdrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "archive", "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": "tokenIds", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "metadataURIs", "type": "bytes[]" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "batchUpdateMetadata", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "buidlerStatuses", "outputs": [ { "internalType": "enum LXDAOBuidler.Status", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "explicitOwnershipOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721A.TokenOwnership", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "explicitOwnershipsOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721A.TokenOwnership[]", "name": "", "type": "tuple[]" } ], "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": "getMetadataAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSigner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "metadataURI", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "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": "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": "", "type": "address" }, { "internalType": "bool", "name": "", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_metadataAddress", "type": "address" } ], "name": "setMetadataAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_signer", "type": "address" } ], "name": "setSigner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "suspend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokenIdOfOwner", "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": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokensOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "stop", "type": "uint256" } ], "name": "tokensOfOwnerIn", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "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" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "metadataURI", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "updateMetadata", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620037af380380620037af83398101604081905262000034916200028c565b6040518060400160405280600c81526020016b262c2220a7a13ab4b23632b960a11b81525060405180604001604052806003815260200162262c2160e91b8152506200008f620000896200017560201b60201c565b62000179565b8151620000a4906003906020850190620001c9565b508051620000ba906004906020840190620001c9565b50600060015550506001600160a01b038216620001435760405162461bcd60e51b815260206004820152603460248201527f4c5844414f427569646c65723a20546865207369676e65722063616e6e6f742060448201527f626520696e697469616c697a6564207a65726f2e000000000000000000000000606482015260840160405180910390fd5b600980546001600160a01b039384166001600160a01b031991821617909155600a805492909316911617905562000301565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620001d790620002c4565b90600052602060002090601f016020900481019282620001fb576000855562000246565b82601f106200021657805160ff191683800117855562000246565b8280016001018555821562000246579182015b828111156200024657825182559160200191906001019062000229565b506200025492915062000258565b5090565b5b8082111562000254576000815560010162000259565b80516001600160a01b03811681146200028757600080fd5b919050565b60008060408385031215620002a057600080fd5b620002ab836200026f565b9150620002bb602084016200026f565b90509250929050565b600181811c90821680620002d957607f821691505b60208210811415620002fb57634e487b7160e01b600052602260045260246000fd5b50919050565b61349e80620003116000396000f3fe608060405234801561001057600080fd5b50600436106102265760003560e01c8063715018a61161012a578063a22cb465116100bd578063c87b56dd1161008c578063e17b25af11610071578063e17b25af146104c2578063e985e9c5146104d5578063f2fde38b146104e857600080fd5b8063c87b56dd1461049c578063da87741b146104af57600080fd5b8063a22cb46514610443578063b260c42a14610456578063b88d4fde14610469578063c23dc68f1461047c57600080fd5b806393c829fc116100f957806393c829fc146103e557806395d89b41146103f857806396f6e9871461040057806399a2557a1461043057600080fd5b8063715018a6146103a45780637ac3c02f146103ac5780638462151c146103b45780638da5cb5b146103d457600080fd5b8063434692b5116101bd5780636352211e1161018c5780636bc63893116101715780636bc638931461036b5780636c19e7831461037e57806370a082311461039157600080fd5b80636352211e14610345578063651e71c31461035857600080fd5b8063434692b5146102f75780634b865846146102ff5780634c3f9fe1146103125780635bbb21771461032557600080fd5b806318160ddd116101f957806318160ddd146102a857806323b872dd146102be5780633084d118146102d157806342842e0e146102e457600080fd5b806301ffc9a71461022b57806306fdde0314610253578063081812fc14610268578063095ea7b314610293575b600080fd5b61023e61023936600461298c565b6104fb565b60405190151581526020015b60405180910390f35b61025b610598565b60405161024a9190612a01565b61027b610276366004612a14565b61062a565b6040516001600160a01b03909116815260200161024a565b6102a66102a1366004612a49565b610687565b005b600254600154035b60405190815260200161024a565b6102a66102cc366004612a73565b6106d8565b6102a66102df366004612af4565b610700565b6102a66102f2366004612a73565b610985565b61027b6109a8565b6102a661030d366004612a14565b6109c2565b6102a6610320366004612ba2565b610ab8565b610338610333366004612c1c565b610b70565b60405161024a9190612c5e565b61027b610353366004612a14565b610c3c565b6102a6610366366004612cdb565b610c47565b6102a6610379366004612d75565b610f58565b6102a661038c366004612dd5565b61116e565b6102b061039f366004612dd5565b6111c9565b6102a6611231565b61027b611245565b6103c76103c2366004612dd5565b61125f565b60405161024a9190612df0565b6000546001600160a01b031661027b565b6102a66103f3366004612a14565b611367565b61025b611415565b61042361040e366004612a14565b600b6020526000908152604090205460ff1681565b60405161024a9190612e3e565b6103c761043e366004612e66565b611424565b6102a6610451366004612e99565b6115bb565b6102a6610464366004612a14565b611629565b6102a6610477366004612f44565b611741565b61048f61048a366004612a14565b61175b565b60405161024a9190612fef565b61025b6104aa366004612a14565b6117d3565b6102b06104bd366004612dd5565b61188f565b6102a66104d0366004612dd5565b6119b7565b61023e6104e3366004613034565b611a13565b6102a66104f6366004612dd5565b611a5d565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316148061055e57507f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061059257507f5b5e139f000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6060600380546105a790613067565b80601f01602080910402602001604051908101604052809291908181526020018280546105d390613067565b80156106205780601f106105f557610100808354040283529160200191610620565b820191906000526020600020905b81548152906001019060200180831161060357829003601f168201915b5050505050905090565b600061063582611aea565b61066b576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506000908152600760205260409020546001600160a01b031690565b60405162461bcd60e51b815260206004820152601d60248201527f4c5844414f427569646c65723a2043616e6e6f7420617070726f76652e00000060448201526064015b60405180910390fd5b5050565b6106e0611b12565b6106fb83838360405180602001604052806000815250611b6c565b505050565b610708611b12565b82811461077d5760405162461bcd60e51b815260206004820152603a60248201527f4c5844414f427569646c65723a20726563697069656e747320616e64206d657460448201527f616461746155524973206c656e677468206d69736d617463682e00000000000060648201526084016106cb565b60005b8381101561097e576107b285858381811061079d5761079d6130a2565b905060200201602081019061039f9190612dd5565b156108255760405162461bcd60e51b815260206004820152602c60248201527f4c5844414f427569646c65723a20726563697069656e7420616c72656164792060448201527f686173206120746f6b656e2e000000000000000000000000000000000000000060648201526084016106cb565b600061083060015490565b9050610863868684818110610847576108476130a2565b905060200201602081019061085c9190612dd5565b6001611d07565b6000818152600b60205260409020805460ff19166001179055600a546001600160a01b031663fd7230d6828686868181106108a0576108a06130a2565b90506020028101906108b291906130b8565b6040518463ffffffff1660e01b81526004016108d093929190613128565b600060405180830381600087803b1580156108ea57600080fd5b505af11580156108fe573d6000803e3d6000fd5b505050507f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe868684818110610935576109356130a2565b905060200201602081019061094a9190612dd5565b604080516001600160a01b039092168252602082018490520160405180910390a150806109768161314b565b915050610780565b5050505050565b61098d611b12565b6106fb83838360405180602001604052806000815250611741565b60006109b2611b12565b50600a546001600160a01b031690565b6109ca611b12565b60016000828152600b602052604090205460ff1660038111156109ef576109ef612e28565b14610a625760405162461bcd60e51b815260206004820152603060248201527f4c5844414f427569646c65723a2054686520627569646c6572206973206e6f7460448201527f2061637469766174696e67206e6f772e0000000000000000000000000000000060648201526084016106cb565b6000818152600b602052604090819020805460ff1916600290811790915590517fafa725e7f44cadb687a7043853fa1a7e7b8f0da74ce87ec546e9420f04da8c1e91610aad91612e3e565b60405180910390a150565b6000546001600160a01b0316331415610add57610ad88585858585611d21565b61097e565b33610ae786610c3c565b6001600160a01b031614610b635760405162461bcd60e51b815260206004820152602d60248201527f4c5844414f427569646c65723a204f6e6c79206f776e65722063616e2075706460448201527f617465206d657461646174612e0000000000000000000000000000000000000060648201526084016106cb565b61097e8585858585611d21565b60608160008167ffffffffffffffff811115610b8e57610b8e612ed5565b604051908082528060200260200182016040528015610be057816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610bac5790505b50905060005b828114610c3357610c0e868683818110610c0257610c026130a2565b9050602002013561175b565b828281518110610c2057610c206130a2565b6020908102919091010152600101610be6565b50949350505050565b600061059282611f1a565b610c4f611b12565b848314610cea5760405162461bcd60e51b815260206004820152604e60248201527f4c5844414f427569646c65723a20746865206c656e677468206f66206f776e6560448201527f7273206973206e6f7420657175616c20746f20746865206c656e677468206f6660648201527f206d65746164617461555249732e000000000000000000000000000000000000608482015260a4016106cb565b60008567ffffffffffffffff811115610d0557610d05612ed5565b604051908082528060200260200182016040528015610d2e578160200160208202803683370190505b50905060005b86811015610e37576000888883818110610d5057610d506130a2565b905060200201359050610d6281610c3c565b838381518110610d7457610d746130a2565b6001600160a01b039092166020928302919091019091015260016000828152600b602052604090205460ff166003811115610db157610db1612e28565b14610e245760405162461bcd60e51b815260206004820152602e60248201527f4c5844414f427569646c65723a2054686520746f6b656e206973206e6f74206160448201527f637469766174696e67206e6f772e00000000000000000000000000000000000060648201526084016106cb565b5080610e2f8161314b565b915050610d34565b50610e82610e46828787611f94565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fca92505050565b610ece5760405162461bcd60e51b815260206004820181905260248201527f4c5844414f427569646c65723a20496e76616c6964207369676e61747572652e60448201526064016106cb565b600a546040517fc9e615910000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c9e6159190610f1d908a908a908a908a90600401613205565b600060405180830381600087803b158015610f3757600080fd5b505af1158015610f4b573d6000803e3d6000fd5b5050505050505050505050565b610f61336111c9565b15610fd45760405162461bcd60e51b815260206004820152602d60248201527f4c5844414f427569646c65723a2054686520627569646c65722068617320616c60448201527f7265616479206d696e7465642e0000000000000000000000000000000000000060648201526084016106cb565b611023610fe7858533611ff4565b611ff4565b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fca92505050565b61106f5760405162461bcd60e51b815260206004820181905260248201527f4c5844414f427569646c65723a20496e76616c6964207369676e61747572652e60448201526064016106cb565b600061107a60015490565b90506110853361085c565b6000818152600b602052604090819020805460ff19166001179055600a5490517ffd7230d60000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fd7230d6906110ec90849089908990600401613128565b600060405180830381600087803b15801561110657600080fd5b505af115801561111a573d6000803e3d6000fd5b505050507f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe6111463390565b604080516001600160a01b039092168252602082018490520160405180910390a15050505050565b611176611b12565b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790556040517e11e9e55e13c0f9f7ea956f4b1e8ba65ba63e88d7c306b9d90b9564cdd30c1190600090a150565b60006001600160a01b03821661120b576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001600160a01b031660009081526006602052604090205467ffffffffffffffff1690565b611239611b12565b611243600061200b565b565b600061124f611b12565b506009546001600160a01b031690565b6060600080600061126f856111c9565b905060008167ffffffffffffffff81111561128c5761128c612ed5565b6040519080825280602002602001820160405280156112b5578160200160208202803683370190505b5060408051608081018252600080825260208201819052918101829052606081018290529192505b83861461135b576112ed81612068565b91508160400151156112fe57611353565b81516001600160a01b03161561131357815194505b876001600160a01b0316856001600160a01b031614156113535780838780600101985081518110611346576113466130a2565b6020026020010181815250505b6001016112dd565b50909695505050505050565b6000546001600160a01b031633141561138657611383816120e7565b50565b3361139082610c3c565b6001600160a01b03161461140c5760405162461bcd60e51b815260206004820152602560248201527f4c5844414f427569646c65723a204f6e6c79206f776e65722063616e2061726360448201527f686976652e00000000000000000000000000000000000000000000000000000060648201526084016106cb565b611383816120e7565b6060600480546105a790613067565b606081831061145f576040517f32c1995a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061146b60015490565b905080841115611479578093505b6000611484876111c9565b9050848610156114a3578585038181101561149d578091505b506114a7565b5060005b60008167ffffffffffffffff8111156114c2576114c2612ed5565b6040519080825280602002602001820160405280156114eb578160200160208202803683370190505b509050816114fe5793506115b492505050565b60006115098861175b565b90506000816040015161151a575080515b885b88811415801561152c5750848714155b156115a85761153a81612068565b925082604001511561154b576115a0565b82516001600160a01b03161561156057825191505b8a6001600160a01b0316826001600160a01b031614156115a05780848880600101995081518110611593576115936130a2565b6020026020010181815250505b60010161151c565b50505092835250909150505b9392505050565b60405162461bcd60e51b815260206004820152602760248201527f4c5844414f427569646c65723a2043616e6e6f7420736574417070726f76616c60448201527f466f72416c6c2e0000000000000000000000000000000000000000000000000060648201526084016106cb565b611631611b12565b60026000828152600b602052604090205460ff16600381111561165657611656612e28565b1480611684575060036000828152600b602052604090205460ff16600381111561168257611682612e28565b145b6116f65760405162461bcd60e51b815260206004820152603b60248201527f4c5844414f427569646c65723a2054686520627569646c6572206973206e6f7460448201527f2073757370656e646564206f72206172636869766564206e6f772e000000000060648201526084016106cb565b6000818152600b602052604090819020805460ff1916600190811790915590517fafa725e7f44cadb687a7043853fa1a7e7b8f0da74ce87ec546e9420f04da8c1e91610aad91612e3e565b611749611b12565b61175584848484611b6c565b50505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845290830182905293820181905292810183905290915060015483106117af5792915050565b6117b883612068565b90508060400151156117ca5792915050565b6115b4836121ca565b60606117de82611aea565b6117f657505060408051602081019091526000815290565b600a546040517fc87b56dd000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b039091169063c87b56dd9060240160006040518083038186803b15801561185357600080fd5b505afa158015611867573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105929190810190613278565b60008061189b836111c9565b116118fb5760405162461bcd60e51b815260206004820152602a60248201527f4c5844414f427569646c65723a206066726f6d60206164647265737320686173604482015269103737903a37b5b2b71760b11b60648201526084016106cb565b6040517f8462151c0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526000903090638462151c9060240160006040518083038186803b15801561195657600080fd5b505afa15801561196a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261199291908101906132e6565b9050806000815181106119a7576119a76130a2565b6020026020010151915050919050565b6119bf611b12565b600a805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790556040517fecbaf36ba670613432ced351f409a39c9c3406b04117b15b7d9d8d35b902122590600090a150565b600080546001600160a01b0316331415611a2f57506001610592565b6001600160a01b0380841660009081526008602090815260408083209386168352929052205460ff166115b4565b611a65611b12565b6001600160a01b038116611ae15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106cb565b6113838161200b565b600060015482108015610592575050600090815260056020526040902054600160e01b161590565b6000546001600160a01b031633146112435760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106cb565b836001600160a01b0316611b7f83610c3c565b6001600160a01b031614611be85760405162461bcd60e51b815260206004820152602a60248201527f4c5844414f427569646c65723a206066726f6d60206164647265737320686173604482015269103737903a37b5b2b71760b11b60648201526084016106cb565b611bf1836111c9565b15611c645760405162461bcd60e51b815260206004820152602d60248201527f4c5844414f427569646c65723a2060746f60206164647265737320616c72656160448201527f64792068617320746f6b656e2e0000000000000000000000000000000000000060648201526084016106cb565b60026000838152600b602052604090205460ff166003811115611c8957611c89612e28565b14611cfc5760405162461bcd60e51b815260206004820152603e60248201527f4c5844414f427569646c65723a2054686520416374697665206f72206172636860448201527f6976656420746f6b656e2063616e6e6f74206265207472616e736665722e000060648201526084016106cb565b611755848484612242565b6106d482826040518060200160405280600081525061241f565b600a546001600160a01b0316611d9f5760405162461bcd60e51b815260206004820152602760248201527f4c5844414f427569646c65723a206d657461646174612061646472657373206960448201527f73207a65726f2e0000000000000000000000000000000000000000000000000060648201526084016106cb565b60016000868152600b602052604090205460ff166003811115611dc457611dc4612e28565b14611e375760405162461bcd60e51b815260206004820152602e60248201527f4c5844414f427569646c65723a2054686520746f6b656e206973206e6f74206160448201527f637469766174696e67206e6f772e00000000000000000000000000000000000060648201526084016106cb565b611e48610fe78585610fe289610c3c565b611e945760405162461bcd60e51b815260206004820181905260248201527f4c5844414f427569646c65723a20496e76616c6964207369676e61747572652e60448201526064016106cb565b600a546040517f0216b8380000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690630216b83890611ee190889088908890600401613128565b600060405180830381600087803b158015611efb57600080fd5b505af1158015611f0f573d6000803e3d6000fd5b505050505050505050565b600081600154811015611f6257600081815260056020526040902054600160e01b8116611f60575b806115b4575060001901600081815260056020526040902054611f42565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838383604051602001611fab93929190613380565b6040516020818303038152906040528051906020012090509392505050565b6009546000906001600160a01b0316611fe38484612485565b6001600160a01b0316149392505050565b6000838383604051602001611fab939291906133e2565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051608081018252600080825260208201819052918101829052606081019190915260008281526005602052604090205461059290604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b60016000828152600b602052604090205460ff16600381111561210c5761210c612e28565b1461217f5760405162461bcd60e51b815260206004820152603060248201527f4c5844414f427569646c65723a2054686520627569646c6572206973206e6f7460448201527f2061637469766174696e67206e6f772e0000000000000000000000000000000060648201526084016106cb565b6000818152600b602052604090819020805460ff1916600390811790915590517fafa725e7f44cadb687a7043853fa1a7e7b8f0da74ce87ec546e9420f04da8c1e91610aad91612e3e565b6040805160808101825260008082526020820181905291810182905260608101919091526105926121fa83611f1a565b604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b600061224d82611f1a565b9050836001600160a01b0316816001600160a01b03161461229a576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526007602052604090208054338082146001600160a01b03881690911417612300576122ca8633611a13565b612300576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038516612340576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561234b57600082555b6001600160a01b038681166000908152600660205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260056020526040902055600160e11b83166123d657600184016000818152600560205260409020546123d45760015481146123d45760008181526005602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b61242983836124be565b6001600160a01b0383163b156106fb576001548281035b61245360008683806001019450866125e8565b612470576040516368d2bf6b60e11b815260040160405180910390fd5b81811061244057816001541461097e57600080fd5b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c839052603c81206115b490836126df565b600154816124f8576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831660008181526006602090815260408083208054680100000000000000018802019055848352600590915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146125a757808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460010161256f565b50816125df576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015550505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061261d90339089908890889060040161340f565b602060405180830381600087803b15801561263757600080fd5b505af1925050508015612667575060408051601f3d908101601f191682019092526126649181019061344b565b60015b6126c2573d808015612695576040519150601f19603f3d011682016040523d82523d6000602084013e61269a565b606091505b5080516126ba576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60008060006126ee8585612703565b915091506126fb81612749565b509392505050565b60008082516041141561273a5760208301516040840151606085015160001a61272e878285856128b2565b94509450505050612742565b506000905060025b9250929050565b600081600481111561275d5761275d612e28565b14156127665750565b600181600481111561277a5761277a612e28565b14156127c85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106cb565b60028160048111156127dc576127dc612e28565b141561282a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106cb565b600381600481111561283e5761283e612e28565b14156113835760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106cb565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156128e9575060009050600361296d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561293d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166129665760006001925092505061296d565b9150600090505b94509492505050565b6001600160e01b03198116811461138357600080fd5b60006020828403121561299e57600080fd5b81356115b481612976565b60005b838110156129c45781810151838201526020016129ac565b838111156117555750506000910152565b600081518084526129ed8160208601602086016129a9565b601f01601f19169290920160200192915050565b6020815260006115b460208301846129d5565b600060208284031215612a2657600080fd5b5035919050565b80356001600160a01b0381168114612a4457600080fd5b919050565b60008060408385031215612a5c57600080fd5b612a6583612a2d565b946020939093013593505050565b600080600060608486031215612a8857600080fd5b612a9184612a2d565b9250612a9f60208501612a2d565b9150604084013590509250925092565b60008083601f840112612ac157600080fd5b50813567ffffffffffffffff811115612ad957600080fd5b6020830191508360208260051b850101111561274257600080fd5b60008060008060408587031215612b0a57600080fd5b843567ffffffffffffffff80821115612b2257600080fd5b612b2e88838901612aaf565b90965094506020870135915080821115612b4757600080fd5b50612b5487828801612aaf565b95989497509550505050565b60008083601f840112612b7257600080fd5b50813567ffffffffffffffff811115612b8a57600080fd5b60208301915083602082850101111561274257600080fd5b600080600080600060608688031215612bba57600080fd5b85359450602086013567ffffffffffffffff80821115612bd957600080fd5b612be589838a01612b60565b90965094506040880135915080821115612bfe57600080fd5b50612c0b88828901612b60565b969995985093965092949392505050565b60008060208385031215612c2f57600080fd5b823567ffffffffffffffff811115612c4657600080fd5b612c5285828601612aaf565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561135b57612cc88385516001600160a01b03815116825267ffffffffffffffff602082015116602083015260408101511515604083015262ffffff60608201511660608301525050565b9284019260809290920191600101612c7a565b60008060008060008060608789031215612cf457600080fd5b863567ffffffffffffffff80821115612d0c57600080fd5b612d188a838b01612aaf565b90985096506020890135915080821115612d3157600080fd5b612d3d8a838b01612aaf565b90965094506040890135915080821115612d5657600080fd5b50612d6389828a01612b60565b979a9699509497509295939492505050565b60008060008060408587031215612d8b57600080fd5b843567ffffffffffffffff80821115612da357600080fd5b612daf88838901612b60565b90965094506020870135915080821115612dc857600080fd5b50612b5487828801612b60565b600060208284031215612de757600080fd5b6115b482612a2d565b6020808252825182820181905260009190848201906040850190845b8181101561135b57835183529284019291840191600101612e0c565b634e487b7160e01b600052602160045260246000fd5b6020810160048310612e6057634e487b7160e01b600052602160045260246000fd5b91905290565b600080600060608486031215612e7b57600080fd5b612e8484612a2d565b95602085013595506040909401359392505050565b60008060408385031215612eac57600080fd5b612eb583612a2d565b915060208301358015158114612eca57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612f1457612f14612ed5565b604052919050565b600067ffffffffffffffff821115612f3657612f36612ed5565b50601f01601f191660200190565b60008060008060808587031215612f5a57600080fd5b612f6385612a2d565b9350612f7160208601612a2d565b925060408501359150606085013567ffffffffffffffff811115612f9457600080fd5b8501601f81018713612fa557600080fd5b8035612fb8612fb382612f1c565b612eeb565b818152886020838501011115612fcd57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b81516001600160a01b0316815260208083015167ffffffffffffffff169082015260408083015115159082015260608083015162ffffff169082015260808101610592565b6000806040838503121561304757600080fd5b61305083612a2d565b915061305e60208401612a2d565b90509250929050565b600181811c9082168061307b57607f821691505b6020821081141561309c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126130cf57600080fd5b83018035915067ffffffffffffffff8211156130ea57600080fd5b60200191503681900382131561274257600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8381526040602082015260006131426040830184866130ff565b95945050505050565b600060001982141561316d57634e487b7160e01b600052601160045260246000fd5b5060010190565b81835260006020808501808196508560051b810191508460005b878110156131f85782840389528135601e198836030181126131af57600080fd5b8701803567ffffffffffffffff8111156131c857600080fd5b8036038913156131d757600080fd5b6131e486828985016130ff565b9a87019a955050509084019060010161318e565b5091979650505050505050565b6040815283604082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85111561323e57600080fd5b8460051b8087606085013780830190506060810160008152606084830301602085015261326c818688613174565b98975050505050505050565b60006020828403121561328a57600080fd5b815167ffffffffffffffff8111156132a157600080fd5b8201601f810184136132b257600080fd5b80516132c0612fb382612f1c565b8181528560208385010111156132d557600080fd5b6131428260208301602086016129a9565b600060208083850312156132f957600080fd5b825167ffffffffffffffff8082111561331157600080fd5b818501915085601f83011261332557600080fd5b81518181111561333757613337612ed5565b8060051b9150613348848301612eeb565b818152918301840191848101908884111561336257600080fd5b938501935b8385101561326c57845182529385019390850190613367565b604080825284519082018190526000906020906060840190828801845b828110156133c25781516001600160a01b03168452928401929084019060010161339d565b505050838103828501526133d7818688613174565b979650505050505050565b6040815260006133f66040830185876130ff565b90506001600160a01b0383166020830152949350505050565b60006001600160a01b0380871683528086166020840152508360408301526080606083015261344160808301846129d5565b9695505050505050565b60006020828403121561345d57600080fd5b81516115b48161297656fea2646970667358221220f62f9242a562db0488e10537b3ee1d5012dd59df449c51063fd4f82cbfebbfe364736f6c63430008090033000000000000000000000000f4192be0b579be42a3479974ec25592deffe7141000000000000000000000000d4d79c0f1e88d9990013015de83bf259a9a8391f