0 txs
0 calls
constructor
constructor(uint256 reserve_, uint256 maxBatch_, uint256 maxSupply_)
functions
balanceOf
viewfunction balanceOf(address tokenOwner_) view returns (uint256)
checkWhitelistAllowance
viewfunction checkWhitelistAllowance(address account_, uint8 whitelistType_, uint256 alloted_, tuple proof_) view returns (uint256)
CLAIM
viewfunction CLAIM() view returns (uint8)
DEFAULT_WHITELIST
viewfunction DEFAULT_WHITELIST() view returns (uint8)
getApproved
viewfunction getApproved(uint256) view returns (address)
getPauseState
viewfunction getPauseState() view returns (uint8)
isApprovedForAll
viewfunction isApprovedForAll(address tokenOwner_, address operator_) view returns (bool)
MAX_BATCH
viewfunction MAX_BATCH() view returns (uint256)
MAX_SUPPLY
viewfunction MAX_SUPPLY() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId_) view returns (address)
PRE_SALE
viewfunction PRE_SALE() view returns (uint8)
PRIVATE_SALE
viewfunction PRIVATE_SALE() view returns (uint8)
royaltyInfo
viewfunction royaltyInfo(uint256, uint256 salePrice_) view returns (address, uint256)
SALE_PRICE
viewfunction SALE_PRICE() view returns (uint256)
supplyMinted
viewfunction supplyMinted() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId_) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index_) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address tokenOwner_, uint256 index_) view returns (uint256 tokenId)
tokenURI
viewfunction tokenURI(uint256 tokenId_) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
addProxyRegistry
nonpayablefunction addProxyRegistry(address proxyRegistryAddress_)
airdrop
nonpayablefunction airdrop(address[] accounts_, uint256[] amounts_)
approve
nonpayablefunction approve(address to_, uint256 tokenId_)
claim
nonpayablefunction claim(uint256 alloted_, tuple proof_, uint256 qty_)
mintPreSale
payablefunction mintPreSale(uint256 alloted_, tuple proof_, uint256 qty_) payable
mintPrivateSale
payablefunction mintPrivateSale(uint256 alloted_, tuple proof_, uint256 qty_) payable
mintPublic
payablefunction mintPublic(uint256 qty_) payable
removeProxyRegistry
nonpayablefunction removeProxyRegistry(address proxyRegistryAddress_)
safeTransferFrom
nonpayablefunction safeTransferFrom(address, address to_, uint256 tokenId_, bytes data_)
safeTransferFrom
nonpayablefunction safeTransferFrom(address, address to_, uint256 tokenId_)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator_, bool approved_)
setBaseURI
nonpayablefunction setBaseURI(string baseURI_)
setPauseState
nonpayablefunction setPauseState(uint8 newState_)
setRoyaltyInfo
nonpayablefunction setRoyaltyInfo(address royaltyRecipient_, uint256 royaltyRate_)
setWhitelist
nonpayablefunction setWhitelist(address adminSigner_)
transferFrom
nonpayablefunction transferFrom(address, address to_, uint256 tokenId_)
transferOwnership
nonpayablefunction transferOwnership(address newOwner_)
withdraw
nonpayablefunction withdraw()
events
Approval
event Approval(address indexed owner_, address indexed approved_, uint256 indexed tokenId_)
ApprovalForAll
event ApprovalForAll(address indexed owner_, address indexed operator_, bool approved_)
ConsecutiveTransfer
event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed fromAddress, address indexed toAddress)
ContractStateChanged
event ContractStateChanged(uint8 indexed previousState, uint8 indexed newState)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PaymentReleased
event PaymentReleased(address to, uint256 amount)
Transfer
event Transfer(address indexed from_, address indexed to_, uint256 indexed tokenId_)
errors
IERC2981_INVALID_ROYALTIES
error IERC2981_INVALID_ROYALTIES(uint256 royaltyRate, uint256 royaltyBase)
IERC721_CALLER_NOT_APPROVED
error IERC721_CALLER_NOT_APPROVED(address tokenOwner, address operator, uint256 tokenId)
IERC721_INVALID_APPROVAL
error IERC721_INVALID_APPROVAL(address operator)
IERC721_INVALID_TRANSFER
error IERC721_INVALID_TRANSFER(address recipient)
IERC721_NON_ERC721_RECEIVER
error IERC721_NON_ERC721_RECEIVER(address receiver)
IERC721_NONEXISTANT_TOKEN
error IERC721_NONEXISTANT_TOKEN(uint256 tokenId)
IERC721Enumerable_INDEX_OUT_OF_BOUNDS
error IERC721Enumerable_INDEX_OUT_OF_BOUNDS(uint256 index)
IERC721Enumerable_OWNER_INDEX_OUT_OF_BOUNDS
error IERC721Enumerable_OWNER_INDEX_OUT_OF_BOUNDS(address tokenOwner, uint256 index)
IOwnable_NOT_OWNER
error IOwnable_NOT_OWNER(address operator)
IPausable_INCORRECT_STATE
error IPausable_INCORRECT_STATE(uint8 currentState)
IPausable_INVALID_STATE
error IPausable_INVALID_STATE(uint8 newState)
IWhitelistable_CONSUMED
error IWhitelistable_CONSUMED(address account)
IWhitelistable_FORBIDDEN
error IWhitelistable_FORBIDDEN(address account)
IWhitelistable_NOT_SET
error IWhitelistable_NOT_SET()
NFT_ARRAY_LENGTH_MISMATCH
error NFT_ARRAY_LENGTH_MISMATCH(uint256 len1, uint256 len2)
NFT_ETHER_TRANSFER_FAIL
error NFT_ETHER_TRANSFER_FAIL(address to, uint256 amount)
NFT_INCORRECT_PRICE
error NFT_INCORRECT_PRICE(uint256 amountReceived, uint256 amountExpected)
NFT_INVALID_QTY
error NFT_INVALID_QTY()
NFT_INVALID_SHARE
error NFT_INVALID_SHARE()
NFT_INVALID_TEAM_MEMBER
error NFT_INVALID_TEAM_MEMBER(address account)
NFT_MAX_BATCH
error NFT_MAX_BATCH(uint256 qtyRequested, uint256 maxBatch)
NFT_MAX_RESERVE
error NFT_MAX_RESERVE(uint256 qtyRequested, uint256 reserveLeft)
NFT_MAX_SUPPLY
error NFT_MAX_SUPPLY(uint256 qtyRequested, uint256 remainingSupply)
NFT_MISSING_SHARES
error NFT_MISSING_SHARES(uint256 missingShares)
NFT_NO_ETHER_BALANCE
error NFT_NO_ETHER_BALANCE()
creation bytecode
0x608060405260016000553480156200001657600080fd5b5060405162003c3938038062003c39833981016040819052620000399162000250565b620000af838383666a94d74f4300006101f46040518060400160405280600e81526020016d213ab9b4102130b13c9021b63ab160911b81525060405180604001604052806004815260200163084aaa6960e31b8152506040518060600160405280602d815260200162003c0c602d9139620000b8565b505050620002bc565b620000c5838383620000fb565b600780546001600160a01b03191633179055620000e3338562000142565b505050600b92909255600c9290925550600d55600e55565b825162000110906001906020860190620001aa565b50815162000126906002906020850190620001aa565b5080516200013c906006906020840190620001aa565b50505050565b6200014e828262000152565b5050565b6127108111156200018557604051632761fe9d60e11b815260048101829052612710602482015260440160405180910390fd5b600955600a80546001600160a01b0319166001600160a01b0392909216919091179055565b828054620001b8906200027f565b90600052602060002090601f016020900481019282620001dc576000855562000227565b82601f10620001f757805160ff191683800117855562000227565b8280016001018555821562000227579182015b82811115620002275782518255916020019190600101906200020a565b506200023592915062000239565b5090565b5b808211156200023557600081556001016200023a565b6000806000606084860312156200026657600080fd5b8351925060208401519150604084015190509250925092565b600181811c908216806200029457607f821691505b60208210811415620002b657634e487b7160e01b600052602260045260246000fd5b50919050565b61394080620002cc6000396000f3fe6080604052600436106102c65760003560e01c806370a08231116101795780639a44f1fb116100d6578063e2e784d51161008a578063ef72f27611610064578063ef72f2761461078f578063efd0cbf9146107af578063f2fde38b146107c257600080fd5b8063e2e784d51461073a578063e5f79bee1461075a578063e985e9c51461076f57600080fd5b8063b4201461116100bb578063b4201461146106da578063b88d4fde146106fa578063c87b56dd1461071a57600080fd5b80639a44f1fb1461068a578063a22cb465146106ba57600080fd5b8063891552701161012d578063950bff9f11610112578063950bff9f1461064a57806395d89b411461066057806398c83a161461067557600080fd5b806389155270146106175780638da5cb5b1461062c57600080fd5b80637e9845f51161015e5780637e9845f5146105cc5780637f205a74146105e1578063854cff2f146105f757600080fd5b806370a082311461058557806373d74876146105a557600080fd5b8063379682a8116102275780635dd4300d116101db5780636352211e116101c05780636352211e1461052557806367243482146105455780636dfa99fd1461056557600080fd5b80635dd4300d146104f2578063630965091461050557600080fd5b806342842e0e1161020c57806342842e0e146104925780634f6ccce7146104b257806355f804b3146104d257600080fd5b8063379682a81461046a5780633ccfd60b1461047d57600080fd5b80631a3f839d1161027e5780632a55205a116102635780632a55205a146103f55780632f745c591461043457806332cb6b0c1461045457600080fd5b80631a3f839d146103b557806323b872dd146103d557600080fd5b8063081812fc116102af578063081812fc14610322578063095ea7b31461037057806318160ddd1461039257600080fd5b806301ffc9a7146102cb57806306fdde0314610300575b600080fd5b3480156102d757600080fd5b506102eb6102e6366004612f70565b6107e2565b60405190151581526020015b60405180910390f35b34801561030c57600080fd5b50610315610802565b6040516102f79190613003565b34801561032e57600080fd5b5061035861033d366004613016565b6003602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102f7565b34801561037c57600080fd5b5061039061038b366004613044565b610890565b005b34801561039e57600080fd5b506103a7610a14565b6040519081526020016102f7565b3480156103c157600080fd5b506103a76103d0366004613167565b610a23565b3480156103e157600080fd5b506103906103f03660046131b7565b610b9a565b34801561040157600080fd5b506104156104103660046131f8565b610caa565b604080516001600160a01b0390931683526020830191909152016102f7565b34801561044057600080fd5b506103a761044f366004613044565b610d0a565b34801561046057600080fd5b506103a7600b5481565b61039061047836600461321a565b610dda565b34801561048957600080fd5b50610390610fe9565b34801561049e57600080fd5b506103906104ad3660046131b7565b611150565b3480156104be57600080fd5b506103a76104cd366004613016565b6112b3565b3480156104de57600080fd5b506103906104ed366004613250565b6112fc565b61039061050036600461321a565b61135a565b34801561051157600080fd5b50610390610520366004613303565b611541565b34801561053157600080fd5b50610358610540366004613016565b61159b565b34801561055157600080fd5b506103906105603660046133ad565b6115f2565b34801561057157600080fd5b5061039061058036600461346f565b611784565b34801561059157600080fd5b506103a76105a036600461346f565b6117de565b3480156105b157600080fd5b506105ba600481565b60405160ff90911681526020016102f7565b3480156105d857600080fd5b506103a76117e9565b3480156105ed57600080fd5b506103a7600d5481565b34801561060357600080fd5b5061039061061236600461346f565b6117fa565b34801561062357600080fd5b506105ba600181565b34801561063857600080fd5b506007546001600160a01b0316610358565b34801561065657600080fd5b506103a7600c5481565b34801561066c57600080fd5b50610315611882565b34801561068157600080fd5b506105ba600281565b34801561069657600080fd5b5060075474010000000000000000000000000000000000000000900460ff166105ba565b3480156106c657600080fd5b506103906106d536600461348c565b61188f565b3480156106e657600080fd5b506103906106f536600461321a565b611969565b34801561070657600080fd5b506103906107153660046134ca565b611b19565b34801561072657600080fd5b50610315610735366004613016565b611cae565b34801561074657600080fd5b50610390610755366004613044565b611d4a565b34801561076657600080fd5b506105ba600381565b34801561077b57600080fd5b506102eb61078a366004613569565b611daa565b34801561079b57600080fd5b506103906107aa36600461346f565b611dbd565b6103906107bd366004613016565b611e17565b3480156107ce57600080fd5b506103906107dd36600461346f565b611fde565b60006107ed8261209a565b806107fc57506107fc82612132565b92915050565b6001805461080f90613597565b80601f016020809104026020016040519081016040528092919081815260200182805461083b90613597565b80156108885780601f1061085d57610100808354040283529160200191610888565b820191906000526020600020905b81548152906001019060200180831161086b57829003601f168201915b505050505081565b8061089a81612262565b6108d8576040517f1cf4d9a4000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b3360006108e484612279565b905060006108f38284876122d0565b905080610946576040517f19f48dff0000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015284166024820152604481018690526064016108cf565b816001600160a01b0316866001600160a01b0316141561099d576040517ff2b21e1c0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016108cf565b60008581526003602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a811691821790925591518893918616917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050505050565b6000610a1e612325565b905090565b6011546000906001600160a01b0316610a68576040517fc71bad4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff841660009081526012602090815260408083206001600160a01b03891684529091529020548311610ad2576040517f706e18b90000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016108cf565b6040805160ff861660208201529081018490526001600160a01b0386166060820152600090608001604051602081830303815290604052805190602001209050610b1c818461232f565b610b5d576040517ff9790dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016108cf565b60ff851660009081526012602090815260408083206001600160a01b038a168452909152902054610b8e9085613614565b9150505b949350505050565b80610ba481612262565b610bdd576040517f1cf4d9a4000000000000000000000000000000000000000000000000000000008152600481018290526024016108cf565b336000610be984612279565b90506000610bf88284876122d0565b905080610c4b576040517f19f48dff0000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015284166024820152604481018690526064016108cf565b6001600160a01b038616610c96576040517ff35b2e070000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016108cf565b610ca18287876123de565b50505050505050565b600080821580610cba5750600954155b15610cd4575050600a546001600160a01b03166000610d03565b600061271084600954610ce7919061362b565b610cf19190613697565b600a546001600160a01b031693509150505b9250929050565b6000610d15836125a7565b8210610d5f576040517f374f8b4f0000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602481018390526044016108cf565b600060015b600054811015610dd257610d7781612262565b8015610d9c5750610d8781612279565b6001600160a01b0316856001600160a01b0316145b15610dc05781841415610db25791506107fc9050565b81610dbc816136ab565b9250505b80610dca816136ab565b915050610d64565b505092915050565b8080610e12576040517f7fcfed3c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075474010000000000000000000000000000000000000000900460ff1660028114801590610e45575060ff8116600314155b15610e81576040517f81d1489b00000000000000000000000000000000000000000000000000000000815260ff821660048201526024016108cf565b3360028686866000610e9586868686610a23565b905081811015610edc576040517ff9790dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016108cf565b6000610ee66117e9565b600e54600b54610ef69190613614565b610f009190613614565b9050808a1115610f46576040517f9abbab07000000000000000000000000000000000000000000000000000000008152600481018b9052602481018290526044016108cf565b6000600d548b610f56919061362b565b9050348114610f9a576040517f87f85d7a000000000000000000000000000000000000000000000000000000008152346004820152602481018290526044016108cf565b3360008181527f8e1fee8c88a9e04123b21e90cae2727a7715bf522a1e46eb5934ccd05203a6b26020526040902080548d0190555b610fd9818d612656565b5050505050505050505050505050565b60075433906001600160a01b0316811461103a576040517fb4f195e60000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016108cf565b4780611072576040517fc65d108600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040513390600090829084908381818185875af1925050503d80600081146110b6576040519150601f19603f3d011682016040523d82523d6000602084013e6110bb565b606091505b5050905080611108576040517f32bb0dee0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602481018490526044016108cf565b604080516001600160a01b0384168152602081018590527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a150505050565b8061115a81612262565b611193576040517f1cf4d9a4000000000000000000000000000000000000000000000000000000008152600481018290526024016108cf565b33600061119f84612279565b905060006111ae8284876122d0565b905080611201576040517f19f48dff0000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015284166024820152604481018690526064016108cf565b6001600160a01b03861661124c576040517ff35b2e070000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016108cf565b6112578287876123de565b611272828787604051806020016040528060008152506127b7565b610ca1576040517f015be56a0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016108cf565b60006112bd6117e9565b82106112f8576040517f125c19b0000000000000000000000000000000000000000000000000000000008152600481018390526024016108cf565b5090565b60075433906001600160a01b0316811461134d576040517fb4f195e60000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016108cf565b6113568261293b565b5050565b8080611392576040517f7fcfed3c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075474010000000000000000000000000000000000000000900460ff16600381146113ef576040517f81d1489b00000000000000000000000000000000000000000000000000000000815260ff821660048201526024016108cf565b336003868686600061140386868686610a23565b90508181101561144a576040517ff9790dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016108cf565b60006114546117e9565b600e54600b546114649190613614565b61146e9190613614565b9050808a11156114b4576040517f9abbab07000000000000000000000000000000000000000000000000000000008152600481018b9052602481018290526044016108cf565b6000600d548b6114c4919061362b565b9050348114611508576040517f87f85d7a000000000000000000000000000000000000000000000000000000008152346004820152602481018290526044016108cf565b3360008181527f0f36ad39aee03e7108cc48f54934702a5f0d4066f10344cebf8198978d86976a6020526040902080548d019055610fcf565b60075433906001600160a01b03168114611592576040517fb4f195e60000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016108cf565b6113568261294e565b6000816115a781612262565b6115e0576040517f1cf4d9a4000000000000000000000000000000000000000000000000000000008152600481018290526024016108cf565b6115e983612279565b91505b50919050565b60075433906001600160a01b03168114611643576040517fb4f195e60000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016108cf565b8251825180821461168a576040517f23f901bf00000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016108cf565b6000815b80156116d757856116a0600183613614565b815181106116b0576116b06136e4565b6020026020010151826116c39190613713565b9150806116cf8161372b565b91505061168e565b50600e5481111561172257600e546040517f016c69db0000000000000000000000000000000000000000000000000000000081526108cf918391600401918252602082015260400190565b600e8054829003905560005b83811015610ca15761177287828151811061174b5761174b6136e4565b6020026020010151878381518110611765576117656136e4565b6020026020010151612656565b8061177c816136ab565b91505061172e565b60075433906001600160a01b031681146117d5576040517fb4f195e60000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016108cf565b611356826129cc565b60006107fc826125a7565b60006001600054610a1e9190613614565b60075433906001600160a01b0316811461184b576040517fb4f195e60000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016108cf565b601180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384161790555050565b6002805461080f90613597565b336001600160a01b0383168114156118de576040517ff2b21e1c0000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108cf565b6001600160a01b0381811660008181526004602090815260408083209488168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b80806119a1576040517f7fcfed3c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075474010000000000000000000000000000000000000000900460ff16611a15576007546040517f81d1489b0000000000000000000000000000000000000000000000000000000081527401000000000000000000000000000000000000000090910460ff1660048201526024016108cf565b3360048585856000611a2986868686610a23565b905081811015611a70576040517ff9790dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016108cf565b600e543390891115611abc57600e546040517f016c69db0000000000000000000000000000000000000000000000000000000081526108cf918b91600401918252602082015260400190565b600e80548a900390556001600160a01b03811660009081527fb4fcd034df3d20faa1c133b66d862ce92732727d40916b48ffb4020cb00fe0536020526040902080548a019055611b0c818a612656565b5050505050505050505050565b82611b2381612262565b611b5c576040517f1cf4d9a4000000000000000000000000000000000000000000000000000000008152600481018290526024016108cf565b336000611b6886612279565b90506000611b778284896122d0565b905080611bca576040517f19f48dff0000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015284166024820152604481018890526064016108cf565b6001600160a01b038816611c15576040517ff35b2e070000000000000000000000000000000000000000000000000000000081526001600160a01b03891660048201526024016108cf565b611c208289896123de565b611c6282898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127b792505050565b611ca3576040517f015be56a0000000000000000000000000000000000000000000000000000000081526001600160a01b03891660048201526024016108cf565b505050505050505050565b606081611cba81612262565b611cf3576040517f1cf4d9a4000000000000000000000000000000000000000000000000000000008152600481018290526024016108cf565b600060068054611d0290613597565b905011611d1757611d1283612b0e565b6115e9565b6006611d2284612b0e565b604051602001611d3392919061377c565b604051602081830303815290604052915050919050565b60075433906001600160a01b03168114611d9b576040517fb4f195e60000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016108cf565b611da58383612c40565b505050565b6000611db68383612cc4565b9392505050565b60075433906001600160a01b03168114611e0e576040517fb4f195e60000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016108cf565b61135682612d04565b8080611e4f576040517f7fcfed3c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075474010000000000000000000000000000000000000000900460ff16600114611ec6576007546040517f81d1489b0000000000000000000000000000000000000000000000000000000081527401000000000000000000000000000000000000000090910460ff1660048201526024016108cf565b600c54821115611f1057600c546040517f5aaca4e40000000000000000000000000000000000000000000000000000000081526108cf918491600401918252602082015260400190565b6000611f1a6117e9565b600e54600b54611f2a9190613614565b611f349190613614565b905080831115611f7a576040517f9abbab0700000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016108cf565b6000600d5484611f8a919061362b565b9050348114611fce576040517f87f85d7a000000000000000000000000000000000000000000000000000000008152346004820152602481018290526044016108cf565b611fd83385612656565b50505050565b60075433906001600160a01b0316811461202f576040517fb4f195e60000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016108cf565b600780546001600160a01b038481167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a0000000000000000000000000000000000000000000000000000000014806107fc57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a7000000000000000000000000000000000000000000000000000000001492915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d630000000000000000000000000000000000000000000000000000000014806121c557507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061221157507fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000145b806107fc57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a7000000000000000000000000000000000000000000000000000000001492915050565b60008161227157506000919050565b506000541190565b60008181526005602052604081205482906001600160a01b03165b6001600160a01b038116611db657816122ac8161372b565b6000818152600560205260409020549093506001600160a01b031691506122949050565b600080846001600160a01b0316846001600160a01b0316148061230c57506000838152600360205260409020546001600160a01b038581169116145b8061231c575061231c8585612cc4565b95945050505050565b6000610a1e6117e9565b6000806001848460400151856000015186602001516040516000815260200160405260405161237a949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561239c573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001516011546001600160a01b0390811691161495945050505050565b600081815260036020526040812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556001821161242157600161242c565b61242c600183613614565b9050600061243b836001613713565b905060008383108015612452575061245283612262565b801561247357506000838152600560205260409020546001600160a01b0316155b9050600061248083612262565b80156124a157506000838152600560205260409020546001600160a01b0316155b905081156124e957600084815260056020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0389161790555b801561252f57600083815260056020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0389161790555b60008581526005602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a811691821790925591518893918b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a450505050505050565b60006001600160a01b0382166125bf57506000919050565b60008060015b60005481101561264d576125d881612262565b1561263d576000818152600560205260409020546001600160a01b031615612615576000818152600560205260409020546001600160a01b031691505b816001600160a01b0316856001600160a01b0316141561263d5782612639816136ab565b9350505b612646816136ab565b90506125c5565b50909392505050565b60008054906126658383613713565b90506000612674600183613614565b600084815260056020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0388161790559050828111156126fd57600081815260056020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0387161790555b8160008190555061272060008685604051806020016040528060008152506127b7565b612761576040517f015be56a0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016108cf565b846001600160a01b031660006001600160a01b0316847fdeaa91b6123d068f5821d0fb0678463d1a8a6079fe8af5de3ce5e896dcf9133d846040516127a891815260200190565b60405180910390a45050505050565b6000833b8015612931576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063150b7a029061280c9033908a9089908990600401613851565b6020604051808303816000875af1925050508015612865575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526128629181019061388d565b60015b6128e4573d808015612893576040519150601f19603f3d011682016040523d82523d6000602084013e612898565b606091505b5080516128dc576040517f015be56a0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016108cf565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149150610b929050565b6001915050610b92565b8051611356906006906020840190612eaf565b6007805460ff838116740100000000000000000000000000000000000000008181027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff85161790945560405193909204169182907f7285522ec93a20dcefa1a1d057094a227073a5463b91c0c19a23c6ef5c9c1fe490600090a35050565b600854808015611da557808060019003915050826001600160a01b0316600882815481106129fc576129fc6136e4565b6000918252602090912001546001600160a01b03161415611da55781612a23826001613713565b14612aa0576008612a35600184613614565b81548110612a4557612a456136e4565b600091825260209091200154600880546001600160a01b039092169183908110612a7157612a716136e4565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b6008805480612ab157612ab16138aa565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055505050565b606081612b4e57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115612b785780612b62816136ab565b9150612b719050600a83613697565b9150612b52565b60008167ffffffffffffffff811115612b9357612b93613086565b6040519080825280601f01601f191660200182016040528015612bbd576020820181803683370190505b5090505b8415610b9257612bd2600183613614565b9150612bdf600a866138d9565b612bea906030613713565b60f81b818381518110612bff57612bff6136e4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612c39600a86613697565b9450612bc1565b612710811115612c87576040517f4ec3fd3a0000000000000000000000000000000000000000000000000000000081526004810182905261271060248201526044016108cf565b600955600a80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000612cd08383612dc3565b80611db657506001600160a01b0380841660009081526004602090815260408083209386168352929052205460ff16611db6565b6008545b8015612d5857808060019003915050816001600160a01b031660088281548110612d3457612d346136e4565b6000918252602090912001546001600160a01b03161415612d53575050565b612d08565b50600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6008546000905b8015612ea557808060019003915050600060088281548110612dee57612dee6136e4565b6000918252602090912001546040517fc45527910000000000000000000000000000000000000000000000000000000081526001600160a01b038781166004830152918216925090851690829063c455279190602401602060405180830381865afa158015612e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8591906138ed565b6001600160a01b03161415612e9f576001925050506107fc565b50612dca565b5060009392505050565b828054612ebb90613597565b90600052602060002090601f016020900481019282612edd5760008555612f23565b82601f10612ef657805160ff1916838001178555612f23565b82800160010185558215612f23579182015b82811115612f23578251825591602001919060010190612f08565b506112f89291505b808211156112f85760008155600101612f2b565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114612f6d57600080fd5b50565b600060208284031215612f8257600080fd5b8135611db681612f3f565b60005b83811015612fa8578181015183820152602001612f90565b83811115611fd85750506000910152565b60008151808452612fd1816020860160208601612f8d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611db66020830184612fb9565b60006020828403121561302857600080fd5b5035919050565b6001600160a01b0381168114612f6d57600080fd5b6000806040838503121561305757600080fd5b82356130628161302f565b946020939093013593505050565b803560ff8116811461308157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156130fc576130fc613086565b604052919050565b60006060828403121561311657600080fd5b6040516060810181811067ffffffffffffffff8211171561313957613139613086565b8060405250809150823581526020830135602082015261315b60408401613070565b60408201525092915050565b60008060008060c0858703121561317d57600080fd5b84356131888161302f565b935061319660208601613070565b9250604085013591506131ac8660608701613104565b905092959194509250565b6000806000606084860312156131cc57600080fd5b83356131d78161302f565b925060208401356131e78161302f565b929592945050506040919091013590565b6000806040838503121561320b57600080fd5b50508035926020909101359150565b600080600060a0848603121561322f57600080fd5b833592506132408560208601613104565b9150608084013590509250925092565b6000602080838503121561326357600080fd5b823567ffffffffffffffff8082111561327b57600080fd5b818501915085601f83011261328f57600080fd5b8135818111156132a1576132a1613086565b6132d1847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016130b5565b915080825286848285010111156132e757600080fd5b8084840185840137600090820190930192909252509392505050565b60006020828403121561331557600080fd5b611db682613070565b600067ffffffffffffffff82111561333857613338613086565b5060051b60200190565b600082601f83011261335357600080fd5b813560206133686133638361331e565b6130b5565b82815260059290921b8401810191818101908684111561338757600080fd5b8286015b848110156133a2578035835291830191830161338b565b509695505050505050565b600080604083850312156133c057600080fd5b823567ffffffffffffffff808211156133d857600080fd5b818501915085601f8301126133ec57600080fd5b813560206133fc6133638361331e565b82815260059290921b8401810191818101908984111561341b57600080fd5b948201945b838610156134425785356134338161302f565b82529482019490820190613420565b9650508601359250508082111561345857600080fd5b5061346585828601613342565b9150509250929050565b60006020828403121561348157600080fd5b8135611db68161302f565b6000806040838503121561349f57600080fd5b82356134aa8161302f565b9150602083013580151581146134bf57600080fd5b809150509250929050565b6000806000806000608086880312156134e257600080fd5b85356134ed8161302f565b945060208601356134fd8161302f565b935060408601359250606086013567ffffffffffffffff8082111561352157600080fd5b818801915088601f83011261353557600080fd5b81358181111561354457600080fd5b89602082850101111561355657600080fd5b9699959850939650602001949392505050565b6000806040838503121561357c57600080fd5b82356135878161302f565b915060208301356134bf8161302f565b600181811c908216806135ab57607f821691505b602082108114156115ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015613626576136266135e5565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613663576136636135e5565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826136a6576136a6613668565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136dd576136dd6135e5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115613726576137266135e5565b500190565b60008161373a5761373a6135e5565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60008151613772818560208601612f8d565b9290920192915050565b600080845481600182811c91508083168061379857607f831692505b60208084108214156137d1577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b8180156137e5576001811461381457613841565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528489019650613841565b60008b81526020902060005b868110156138395781548b820152908501908301613820565b505084890196505b50505050505061231c8185613760565b60006001600160a01b038087168352808616602084015250836040830152608060608301526138836080830184612fb9565b9695505050505050565b60006020828403121561389f57600080fd5b8151611db681612f3f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000826138e8576138e8613668565b500690565b6000602082840312156138ff57600080fd5b8151611db68161302f56fea2646970667358221220c23bf519f017375ddfe0a0ade5e60fa341b2f52dbd7d3a87bf3e31c8f044bc9764736f6c634300080a003368747470733a2f2f6170692e6275736862616279636c75622e696f2f6d657461646174613f746f6b656e49643d000000000000000000000000000000000000000000000000000000000000082a000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000001e61