Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
2,009 FMWAC
Holders
1,830
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
7 FMWACLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FloydAutographCollection
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-09-26 */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.4; interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom( address from, address to, uint256 tokenId ) external; function transferFrom( address from, address to, uint256 tokenId ) external; function approve(address to, uint256 tokenId) external; function getApproved(uint256 tokenId) external view returns (address operator); function setApprovalForAll(address operator, bool _approved) external; function isApprovedForAll(address owner, address operator) external view returns (bool); function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } interface IERC721Metadata is IERC721 { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256 tokenId) external view returns (string memory); } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) private pure returns (bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; string private _name; string private _symbol; mapping(uint256 => address) private _owners; mapping(address => uint256) private _balances; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; } function _baseURI() internal view virtual returns (string memory) { return ""; } function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public virtual override { require(operator != _msgSender(), "ERC721: approve to caller"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_msgSender(), operator, approved); } function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom( address from, address to, uint256 tokenId ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ""); } function _safeMint( address to, uint256 tokenId, bytes memory _data ) internal virtual { _mint(to, tokenId); require( _checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer" ); } function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); } function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver(to).onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} } abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; _; _status = _NOT_ENTERED; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract FloydAutographCollection is Ownable, ERC721 { string public baseURI = "https://floydnft.com/photo-nft/"; uint public totalSupply; bool public isMintingOpen = true; constructor() ERC721("Floyd Mayweather - Autograph Collection", "FMWAC") {} function _baseURI() internal view override returns (string memory) { return baseURI; } function setBaseURI(string memory newURI) external onlyOwner { baseURI = newURI; } function batchMint(address[] calldata destinations) onlyOwner external { uint supply = totalSupply; uint batchSize = destinations.length; require(isMintingOpen, "Minting has been closed"); for (uint i = 0; i < batchSize; i++) { _safeMint(destinations[i], supply++); } totalSupply = supply; } function closeMinting() onlyOwner external { isMintingOpen = false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"destinations","type":"address[]"}],"name":"batchMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeMinting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","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":[],"name":"isMintingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newURI","type":"string"}],"name":"setBaseURI","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":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c0604052601f60808190527f68747470733a2f2f666c6f79646e66742e636f6d2f70686f746f2d6e66742f0060a090815262000040916007919062000121565b506009805460ff191660011790553480156200005b57600080fd5b50604051806060016040528060278152602001620025c460279139604080518082019091526005815264464d57414360d81b60208201526200009d33620000d1565b8151620000b290600190602085019062000121565b508051620000c890600290602084019062000121565b50505062000204565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8280546200012f90620001c7565b90600052602060002090601f0160209004810192826200015357600085556200019e565b82601f106200016e57805160ff19168380011785556200019e565b828001600101855582156200019e579182015b828111156200019e57825182559160200191906001019062000181565b50620001ac929150620001b0565b5090565b5b80821115620001ac5760008155600101620001b1565b600181811c90821680620001dc57607f821691505b60208210811415620001fe57634e487b7160e01b600052602260045260246000fd5b50919050565b6123b080620002146000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806370a08231116100d8578063a22cb4651161008c578063d67b06c111610066578063d67b06c11461030b578063e985e9c51461031e578063f2fde38b1461036757600080fd5b8063a22cb465146102d2578063b88d4fde146102e5578063c87b56dd146102f857600080fd5b806387491c60116100bd57806387491c60146102a45780638da5cb5b146102ac57806395d89b41146102ca57600080fd5b806370a0823114610289578063715018a61461029c57600080fd5b80631a2069101161013a57806355f804b31161011457806355f804b31461025b5780636352211e1461026e5780636c0360eb1461028157600080fd5b80631a2069101461022857806323b872dd1461023557806342842e0e1461024857600080fd5b8063081812fc1161016b578063081812fc146101c4578063095ea7b3146101fc57806318160ddd1461021157600080fd5b806301ffc9a71461018757806306fdde03146101af575b600080fd5b61019a610195366004612044565b61037a565b60405190151581526020015b60405180910390f35b6101b761045f565b6040516101a6919061219c565b6101d76101d23660046120c2565b6104f1565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a6565b61020f61020a366004611fab565b6105d0565b005b61021a60085481565b6040519081526020016101a6565b60095461019a9060ff1681565b61020f610243366004611ebd565b61075d565b61020f610256366004611ebd565b6107fe565b61020f61026936600461207c565b610819565b6101d761027c3660046120c2565b6108b1565b6101b7610963565b61021a610297366004611e71565b6109f1565b61020f610abf565b61020f610b4c565b60005473ffffffffffffffffffffffffffffffffffffffff166101d7565b6101b7610bf7565b61020f6102e0366004611f71565b610c06565b61020f6102f3366004611ef8565b610d1d565b6101b76103063660046120c2565b610dc5565b61020f610319366004611fd4565b610ed5565b61019a61032c366004611e8b565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260066020908152604080832093909416825291909152205460ff1690565b61020f610375366004611e71565b61104f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061040d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061045957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606001805461046e9061221e565b80601f016020809104026020016040519081016040528092919081815260200182805461049a9061221e565b80156104e75780601f106104bc576101008083540402835291602001916104e7565b820191906000526020600020905b8154815290600101906020018083116104ca57829003601f168201915b5050505050905090565b60008181526003602052604081205473ffffffffffffffffffffffffffffffffffffffff166105a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526005602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006105db826108b1565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161059e565b3373ffffffffffffffffffffffffffffffffffffffff821614806106c257506106c2813361032c565b61074e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161059e565b610758838361117f565b505050565b610767338261121f565b6107f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f766564000000000000000000000000000000606482015260840161059e565b61075883838361138f565b61075883838360405180602001604052806000815250610d1d565b60005473ffffffffffffffffffffffffffffffffffffffff16331461089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059e565b80516108ad906007906020840190611d1b565b5050565b60008181526003602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e0000000000000000000000000000000000000000000000606482015260840161059e565b600780546109709061221e565b80601f016020809104026020016040519081016040528092919081815260200182805461099c9061221e565b80156109e95780601f106109be576101008083540402835291602001916109e9565b820191906000526020600020905b8154815290600101906020018083116109cc57829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff8216610a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f206164647265737300000000000000000000000000000000000000000000606482015260840161059e565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059e565b610b4a60006115f6565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059e565b600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60606002805461046e9061221e565b73ffffffffffffffffffffffffffffffffffffffff8216331415610c86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161059e565b33600081815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610d27338361121f565b610db3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f766564000000000000000000000000000000606482015260840161059e565b610dbf8484848461166b565b50505050565b60008181526003602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16610e79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000606482015260840161059e565b6000610e8361170e565b90506000815111610ea35760405180602001604052806000815250610ece565b80610ead8461171d565b604051602001610ebe929190612124565b6040516020818303038152906040525b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059e565b600854600954829060ff16610fc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d696e74696e6720686173206265656e20636c6f736564000000000000000000604482015260640161059e565b60005b818110156110465761103485858381811061100e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906110239190611e71565b8461102d81612272565b955061189d565b8061103e81612272565b915050610fca565b50506008555050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146110d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059e565b73ffffffffffffffffffffffffffffffffffffffff8116611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161059e565b61117c816115f6565b50565b600081815260056020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906111d9826108b1565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008181526003602052604081205473ffffffffffffffffffffffffffffffffffffffff166112d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e0000000000000000000000000000000000000000606482015260840161059e565b60006112db836108b1565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061134a57508373ffffffffffffffffffffffffffffffffffffffff16611332846104f1565b73ffffffffffffffffffffffffffffffffffffffff16145b80611387575073ffffffffffffffffffffffffffffffffffffffff80821660009081526006602090815260408083209388168352929052205460ff165b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff166113af826108b1565b73ffffffffffffffffffffffffffffffffffffffff1614611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e0000000000000000000000000000000000000000000000606482015260840161059e565b73ffffffffffffffffffffffffffffffffffffffff82166114f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161059e565b6114ff60008261117f565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604081208054600192906115359084906121db565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081208054600192906115709084906121af565b909155505060008181526003602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61167684848461138f565b611682848484846118b7565b610dbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161059e565b60606007805461046e9061221e565b60608161175d57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611787578061177181612272565b91506117809050600a836121c7565b9150611761565b60008167ffffffffffffffff8111156117c9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156117f3576020820181803683370190505b5090505b8415611387576118086001836121db565b9150611815600a866122ab565b6118209060306121af565b60f81b81838151811061185c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611896600a866121c7565b94506117f7565b6108ad828260405180602001604052806000815250611ab6565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611aab576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061192e903390899088908890600401612153565b602060405180830381600087803b15801561194857600080fd5b505af1925050508015611996575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261199391810190612060565b60015b611a60573d8080156119c4576040519150601f19603f3d011682016040523d82523d6000602084013e6119c9565b606091505b508051611a58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161059e565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611387565b506001949350505050565b611ac08383611b59565b611acd60008484846118b7565b610758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161059e565b73ffffffffffffffffffffffffffffffffffffffff8216611bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161059e565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161059e565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260408120805460019290611c989084906121af565b909155505060008181526003602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611d279061221e565b90600052602060002090601f016020900481019282611d495760008555611d8f565b82601f10611d6257805160ff1916838001178555611d8f565b82800160010185558215611d8f579182015b82811115611d8f578251825591602001919060010190611d74565b50611d9b929150611d9f565b5090565b5b80821115611d9b5760008155600101611da0565b600067ffffffffffffffff80841115611dcf57611dcf61231d565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611e1557611e1561231d565b81604052809350858152868686011115611e2e57600080fd5b858560208301376000602087830101525050509392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611e6c57600080fd5b919050565b600060208284031215611e82578081fd5b610ece82611e48565b60008060408385031215611e9d578081fd5b611ea683611e48565b9150611eb460208401611e48565b90509250929050565b600080600060608486031215611ed1578081fd5b611eda84611e48565b9250611ee860208501611e48565b9150604084013590509250925092565b60008060008060808587031215611f0d578081fd5b611f1685611e48565b9350611f2460208601611e48565b925060408501359150606085013567ffffffffffffffff811115611f46578182fd5b8501601f81018713611f56578182fd5b611f6587823560208401611db4565b91505092959194509250565b60008060408385031215611f83578182fd5b611f8c83611e48565b915060208301358015158114611fa0578182fd5b809150509250929050565b60008060408385031215611fbd578182fd5b611fc683611e48565b946020939093013593505050565b60008060208385031215611fe6578182fd5b823567ffffffffffffffff80821115611ffd578384fd5b818501915085601f830112612010578384fd5b81358181111561201e578485fd5b8660208260051b8501011115612032578485fd5b60209290920196919550909350505050565b600060208284031215612055578081fd5b8135610ece8161234c565b600060208284031215612071578081fd5b8151610ece8161234c565b60006020828403121561208d578081fd5b813567ffffffffffffffff8111156120a3578182fd5b8201601f810184136120b3578182fd5b61138784823560208401611db4565b6000602082840312156120d3578081fd5b5035919050565b600081518084526120f28160208601602086016121f2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600083516121368184602088016121f2565b83519083019061214a8183602088016121f2565b01949350505050565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261219260808301846120da565b9695505050505050565b602081526000610ece60208301846120da565b600082198211156121c2576121c26122bf565b500190565b6000826121d6576121d66122ee565b500490565b6000828210156121ed576121ed6122bf565b500390565b60005b8381101561220d5781810151838201526020016121f5565b83811115610dbf5750506000910152565b600181811c9082168061223257607f821691505b6020821081141561226c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156122a4576122a46122bf565b5060010190565b6000826122ba576122ba6122ee565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116811461117c57600080fdfea2646970667358221220db6298671a2731bf9dccd7217dd781b3fb0e4f82fd28bf8f2d82db755dfd4a6364736f6c63430008040033466c6f7964204d617977656174686572202d204175746f677261706820436f6c6c656374696f6e
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101825760003560e01c806370a08231116100d8578063a22cb4651161008c578063d67b06c111610066578063d67b06c11461030b578063e985e9c51461031e578063f2fde38b1461036757600080fd5b8063a22cb465146102d2578063b88d4fde146102e5578063c87b56dd146102f857600080fd5b806387491c60116100bd57806387491c60146102a45780638da5cb5b146102ac57806395d89b41146102ca57600080fd5b806370a0823114610289578063715018a61461029c57600080fd5b80631a2069101161013a57806355f804b31161011457806355f804b31461025b5780636352211e1461026e5780636c0360eb1461028157600080fd5b80631a2069101461022857806323b872dd1461023557806342842e0e1461024857600080fd5b8063081812fc1161016b578063081812fc146101c4578063095ea7b3146101fc57806318160ddd1461021157600080fd5b806301ffc9a71461018757806306fdde03146101af575b600080fd5b61019a610195366004612044565b61037a565b60405190151581526020015b60405180910390f35b6101b761045f565b6040516101a6919061219c565b6101d76101d23660046120c2565b6104f1565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a6565b61020f61020a366004611fab565b6105d0565b005b61021a60085481565b6040519081526020016101a6565b60095461019a9060ff1681565b61020f610243366004611ebd565b61075d565b61020f610256366004611ebd565b6107fe565b61020f61026936600461207c565b610819565b6101d761027c3660046120c2565b6108b1565b6101b7610963565b61021a610297366004611e71565b6109f1565b61020f610abf565b61020f610b4c565b60005473ffffffffffffffffffffffffffffffffffffffff166101d7565b6101b7610bf7565b61020f6102e0366004611f71565b610c06565b61020f6102f3366004611ef8565b610d1d565b6101b76103063660046120c2565b610dc5565b61020f610319366004611fd4565b610ed5565b61019a61032c366004611e8b565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260066020908152604080832093909416825291909152205460ff1690565b61020f610375366004611e71565b61104f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061040d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061045957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606001805461046e9061221e565b80601f016020809104026020016040519081016040528092919081815260200182805461049a9061221e565b80156104e75780601f106104bc576101008083540402835291602001916104e7565b820191906000526020600020905b8154815290600101906020018083116104ca57829003601f168201915b5050505050905090565b60008181526003602052604081205473ffffffffffffffffffffffffffffffffffffffff166105a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526005602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006105db826108b1565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161059e565b3373ffffffffffffffffffffffffffffffffffffffff821614806106c257506106c2813361032c565b61074e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161059e565b610758838361117f565b505050565b610767338261121f565b6107f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f766564000000000000000000000000000000606482015260840161059e565b61075883838361138f565b61075883838360405180602001604052806000815250610d1d565b60005473ffffffffffffffffffffffffffffffffffffffff16331461089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059e565b80516108ad906007906020840190611d1b565b5050565b60008181526003602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e0000000000000000000000000000000000000000000000606482015260840161059e565b600780546109709061221e565b80601f016020809104026020016040519081016040528092919081815260200182805461099c9061221e565b80156109e95780601f106109be576101008083540402835291602001916109e9565b820191906000526020600020905b8154815290600101906020018083116109cc57829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff8216610a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f206164647265737300000000000000000000000000000000000000000000606482015260840161059e565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059e565b610b4a60006115f6565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059e565b600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60606002805461046e9061221e565b73ffffffffffffffffffffffffffffffffffffffff8216331415610c86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161059e565b33600081815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610d27338361121f565b610db3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f766564000000000000000000000000000000606482015260840161059e565b610dbf8484848461166b565b50505050565b60008181526003602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16610e79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000606482015260840161059e565b6000610e8361170e565b90506000815111610ea35760405180602001604052806000815250610ece565b80610ead8461171d565b604051602001610ebe929190612124565b6040516020818303038152906040525b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059e565b600854600954829060ff16610fc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d696e74696e6720686173206265656e20636c6f736564000000000000000000604482015260640161059e565b60005b818110156110465761103485858381811061100e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906110239190611e71565b8461102d81612272565b955061189d565b8061103e81612272565b915050610fca565b50506008555050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146110d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059e565b73ffffffffffffffffffffffffffffffffffffffff8116611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161059e565b61117c816115f6565b50565b600081815260056020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906111d9826108b1565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008181526003602052604081205473ffffffffffffffffffffffffffffffffffffffff166112d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e0000000000000000000000000000000000000000606482015260840161059e565b60006112db836108b1565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061134a57508373ffffffffffffffffffffffffffffffffffffffff16611332846104f1565b73ffffffffffffffffffffffffffffffffffffffff16145b80611387575073ffffffffffffffffffffffffffffffffffffffff80821660009081526006602090815260408083209388168352929052205460ff165b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff166113af826108b1565b73ffffffffffffffffffffffffffffffffffffffff1614611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e0000000000000000000000000000000000000000000000606482015260840161059e565b73ffffffffffffffffffffffffffffffffffffffff82166114f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161059e565b6114ff60008261117f565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604081208054600192906115359084906121db565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081208054600192906115709084906121af565b909155505060008181526003602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61167684848461138f565b611682848484846118b7565b610dbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161059e565b60606007805461046e9061221e565b60608161175d57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611787578061177181612272565b91506117809050600a836121c7565b9150611761565b60008167ffffffffffffffff8111156117c9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156117f3576020820181803683370190505b5090505b8415611387576118086001836121db565b9150611815600a866122ab565b6118209060306121af565b60f81b81838151811061185c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611896600a866121c7565b94506117f7565b6108ad828260405180602001604052806000815250611ab6565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611aab576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061192e903390899088908890600401612153565b602060405180830381600087803b15801561194857600080fd5b505af1925050508015611996575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261199391810190612060565b60015b611a60573d8080156119c4576040519150601f19603f3d011682016040523d82523d6000602084013e6119c9565b606091505b508051611a58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161059e565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611387565b506001949350505050565b611ac08383611b59565b611acd60008484846118b7565b610758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161059e565b73ffffffffffffffffffffffffffffffffffffffff8216611bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161059e565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161059e565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260408120805460019290611c989084906121af565b909155505060008181526003602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611d279061221e565b90600052602060002090601f016020900481019282611d495760008555611d8f565b82601f10611d6257805160ff1916838001178555611d8f565b82800160010185558215611d8f579182015b82811115611d8f578251825591602001919060010190611d74565b50611d9b929150611d9f565b5090565b5b80821115611d9b5760008155600101611da0565b600067ffffffffffffffff80841115611dcf57611dcf61231d565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611e1557611e1561231d565b81604052809350858152868686011115611e2e57600080fd5b858560208301376000602087830101525050509392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611e6c57600080fd5b919050565b600060208284031215611e82578081fd5b610ece82611e48565b60008060408385031215611e9d578081fd5b611ea683611e48565b9150611eb460208401611e48565b90509250929050565b600080600060608486031215611ed1578081fd5b611eda84611e48565b9250611ee860208501611e48565b9150604084013590509250925092565b60008060008060808587031215611f0d578081fd5b611f1685611e48565b9350611f2460208601611e48565b925060408501359150606085013567ffffffffffffffff811115611f46578182fd5b8501601f81018713611f56578182fd5b611f6587823560208401611db4565b91505092959194509250565b60008060408385031215611f83578182fd5b611f8c83611e48565b915060208301358015158114611fa0578182fd5b809150509250929050565b60008060408385031215611fbd578182fd5b611fc683611e48565b946020939093013593505050565b60008060208385031215611fe6578182fd5b823567ffffffffffffffff80821115611ffd578384fd5b818501915085601f830112612010578384fd5b81358181111561201e578485fd5b8660208260051b8501011115612032578485fd5b60209290920196919550909350505050565b600060208284031215612055578081fd5b8135610ece8161234c565b600060208284031215612071578081fd5b8151610ece8161234c565b60006020828403121561208d578081fd5b813567ffffffffffffffff8111156120a3578182fd5b8201601f810184136120b3578182fd5b61138784823560208401611db4565b6000602082840312156120d3578081fd5b5035919050565b600081518084526120f28160208601602086016121f2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600083516121368184602088016121f2565b83519083019061214a8183602088016121f2565b01949350505050565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261219260808301846120da565b9695505050505050565b602081526000610ece60208301846120da565b600082198211156121c2576121c26122bf565b500190565b6000826121d6576121d66122ee565b500490565b6000828210156121ed576121ed6122bf565b500390565b60005b8381101561220d5781810151838201526020016121f5565b83811115610dbf5750506000910152565b600181811c9082168061223257607f821691505b6020821081141561226c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156122a4576122a46122bf565b5060010190565b6000826122ba576122ba6122ee565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116811461117c57600080fdfea2646970667358221220db6298671a2731bf9dccd7217dd781b3fb0e4f82fd28bf8f2d82db755dfd4a6364736f6c63430008040033
Deployed Bytecode Sourcemap
16835:893:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8127:305;;;;;;:::i;:::-;;:::i;:::-;;;6653:14:1;;6646:22;6628:41;;6616:2;6601:18;8127:305:0;;;;;;;;8921:100;;;:::i;:::-;;;;;;;:::i;10034:221::-;;;;;;:::i;:::-;;:::i;:::-;;;5917:42:1;5905:55;;;5887:74;;5875:2;5860:18;10034:221:0;5842:125:1;9609:411:0;;;;;;:::i;:::-;;:::i;:::-;;16957:23;;;;;;;;;13784:25:1;;;13772:2;13757:18;16957:23:0;13739:76:1;16985:32:0;;;;;;;;;10756:296;;;;;;:::i;:::-;;:::i;11066:185::-;;;;;;:::i;:::-;;:::i;17205:90::-;;;;;;:::i;:::-;;:::i;8668:239::-;;;;;;:::i;:::-;;:::i;16895:57::-;;;:::i;8446:208::-;;;;;;:::i;:::-;;:::i;16347:94::-;;;:::i;17646:77::-;;;:::i;16112:87::-;16158:7;16185:6;;;16112:87;;9035:104;;;:::i;10269:295::-;;;;;;:::i;:::-;;:::i;11265:328::-;;;;;;:::i;:::-;;:::i;9153:334::-;;;;;;:::i;:::-;;:::i;17301:339::-;;;;;;:::i;:::-;;:::i;10578:164::-;;;;;;:::i;:::-;10699:25;;;;10675:4;10699:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;10578:164;16455:192;;;;;;:::i;:::-;;:::i;8127:305::-;8229:4;8266:40;;;8281:25;8266:40;;:105;;-1:-1:-1;8323:48:0;;;8338:33;8323:48;8266:105;:158;;;-1:-1:-1;7475:25:0;7460:40;;;;8388:36;8246:178;8127:305;-1:-1:-1;;8127:305:0:o;8921:100::-;8975:13;9008:5;9001:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8921:100;:::o;10034:221::-;10110:7;12025:16;;;:7;:16;;;;;;:30;:16;10130:73;;;;;;;11420:2:1;10130:73:0;;;11402:21:1;11459:2;11439:18;;;11432:30;11498:34;11478:18;;;11471:62;11569:14;11549:18;;;11542:42;11601:19;;10130:73:0;;;;;;;;;-1:-1:-1;10223:24:0;;;;:15;:24;;;;;;;;;10034:221::o;9609:411::-;9690:13;9706:23;9721:7;9706:14;:23::i;:::-;9690:39;;9754:5;9748:11;;:2;:11;;;;9740:57;;;;;;;13020:2:1;9740:57:0;;;13002:21:1;13059:2;13039:18;;;13032:30;13098:34;13078:18;;;13071:62;13169:3;13149:18;;;13142:31;13190:19;;9740:57:0;12992:223:1;9740:57:0;5692:10;9832:21;;;;;:62;;-1:-1:-1;9857:37:0;9874:5;5692:10;10578:164;:::i;9857:37::-;9810:168;;;;;;;9813:2:1;9810:168:0;;;9795:21:1;9852:2;9832:18;;;9825:30;9891:34;9871:18;;;9864:62;9962:26;9942:18;;;9935:54;10006:19;;9810:168:0;9785:246:1;9810:168:0;9991:21;10000:2;10004:7;9991:8;:21::i;:::-;9609:411;;;:::o;10756:296::-;10908:41;5692:10;10941:7;10908:18;:41::i;:::-;10900:103;;;;;;;13422:2:1;10900:103:0;;;13404:21:1;13461:2;13441:18;;;13434:30;13500:34;13480:18;;;13473:62;13571:19;13551:18;;;13544:47;13608:19;;10900:103:0;13394:239:1;10900:103:0;11016:28;11026:4;11032:2;11036:7;11016:9;:28::i;11066:185::-;11204:39;11221:4;11227:2;11231:7;11204:39;;;;;;;;;;;;:16;:39::i;17205:90::-;16158:7;16185:6;16253:23;16185:6;5692:10;16253:23;16245:68;;;;;;;11833:2:1;16245:68:0;;;11815:21:1;;;11852:18;;;11845:30;11911:34;11891:18;;;11884:62;11963:18;;16245:68:0;11805:182:1;16245:68:0;17273:16;;::::1;::::0;:7:::1;::::0;:16:::1;::::0;::::1;::::0;::::1;:::i;:::-;;17205:90:::0;:::o;8668:239::-;8740:7;8776:16;;;:7;:16;;;;;;;;8811:19;8803:73;;;;;;;10649:2:1;8803:73:0;;;10631:21:1;10688:2;10668:18;;;10661:30;10727:34;10707:18;;;10700:62;10798:11;10778:18;;;10771:39;10827:19;;8803:73:0;10621:231:1;16895:57:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8446:208::-;8518:7;8546:19;;;8538:74;;;;;;;10238:2:1;8538:74:0;;;10220:21:1;10277:2;10257:18;;;10250:30;10316:34;10296:18;;;10289:62;10387:12;10367:18;;;10360:40;10417:19;;8538:74:0;10210:232:1;8538:74:0;-1:-1:-1;8630:16:0;;;;;;:9;:16;;;;;;;8446:208::o;16347:94::-;16158:7;16185:6;16253:23;16185:6;5692:10;16253:23;16245:68;;;;;;;11833:2:1;16245:68:0;;;11815:21:1;;;11852:18;;;11845:30;11911:34;11891:18;;;11884:62;11963:18;;16245:68:0;11805:182:1;16245:68:0;16412:21:::1;16430:1;16412:9;:21::i;:::-;16347:94::o:0;17646:77::-;16158:7;16185:6;16253:23;16185:6;5692:10;16253:23;16245:68;;;;;;;11833:2:1;16245:68:0;;;11815:21:1;;;11852:18;;;11845:30;11911:34;11891:18;;;11884:62;11963:18;;16245:68:0;11805:182:1;16245:68:0;17696:13:::1;:21:::0;;;::::1;::::0;;17646:77::o;9035:104::-;9091:13;9124:7;9117:14;;;;;:::i;10269:295::-;10372:24;;;5692:10;10372:24;;10364:62;;;;;;;9046:2:1;10364:62:0;;;9028:21:1;9085:2;9065:18;;;9058:30;9124:27;9104:18;;;9097:55;9169:18;;10364:62:0;9018:175:1;10364:62:0;5692:10;10439:32;;;;:18;:32;;;;;;;;;:42;;;;;;;;;;;;:53;;;;;;;;;;;;;10508:48;;6628:41:1;;;10439:42:0;;5692:10;10508:48;;6601:18:1;10508:48:0;;;;;;;10269:295;;:::o;11265:328::-;11440:41;5692:10;11473:7;11440:18;:41::i;:::-;11432:103;;;;;;;13422:2:1;11432:103:0;;;13404:21:1;13461:2;13441:18;;;13434:30;13500:34;13480:18;;;13473:62;13571:19;13551:18;;;13544:47;13608:19;;11432:103:0;13394:239:1;11432:103:0;11546:39;11560:4;11566:2;11570:7;11579:5;11546:13;:39::i;:::-;11265:328;;;;:::o;9153:334::-;12001:4;12025:16;;;:7;:16;;;;;;9226:13;;12025:30;:16;9252:76;;;;;;;12604:2:1;9252:76:0;;;12586:21:1;12643:2;12623:18;;;12616:30;12682:34;12662:18;;;12655:62;12753:17;12733:18;;;12726:45;12788:19;;9252:76:0;12576:237:1;9252:76:0;9341:21;9365:10;:8;:10::i;:::-;9341:34;;9417:1;9399:7;9393:21;:25;:86;;;;;;;;;;;;;;;;;9445:7;9454:18;:7;:16;:18::i;:::-;9428:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9393:86;9386:93;9153:334;-1:-1:-1;;;9153:334:0:o;17301:339::-;16158:7;16185:6;16253:23;16185:6;5692:10;16253:23;16245:68;;;;;;;11833:2:1;16245:68:0;;;11815:21:1;;;11852:18;;;11845:30;11911:34;11891:18;;;11884:62;11963:18;;16245:68:0;11805:182:1;16245:68:0;17395:11:::1;::::0;17466:13:::1;::::0;17430:12;;17466:13:::1;;17458:49;;;::::0;::::1;::::0;;8694:2:1;17458:49:0::1;::::0;::::1;8676:21:1::0;8733:2;8713:18;;;8706:30;8772:25;8752:18;;;8745:53;8815:18;;17458:49:0::1;8666:173:1::0;17458:49:0::1;17521:6;17516:90;17537:9;17533:1;:13;17516:90;;;17562:36;17572:12;;17585:1;17572:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17589:8:::0;::::1;::::0;::::1;:::i;:::-;;;17562:9;:36::i;:::-;17548:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17516:90;;;-1:-1:-1::0;;17614:11:0::1;:20:::0;-1:-1:-1;;17301:339:0:o;16455:192::-;16158:7;16185:6;16253:23;16185:6;5692:10;16253:23;16245:68;;;;;;;11833:2:1;16245:68:0;;;11815:21:1;;;11852:18;;;11845:30;11911:34;11891:18;;;11884:62;11963:18;;16245:68:0;11805:182:1;16245:68:0;16544:22:::1;::::0;::::1;16536:73;;;::::0;::::1;::::0;;7525:2:1;16536:73:0::1;::::0;::::1;7507:21:1::0;7564:2;7544:18;;;7537:30;7603:34;7583:18;;;7576:62;7674:8;7654:18;;;7647:36;7700:19;;16536:73:0::1;7497:228:1::0;16536:73:0::1;16620:19;16630:8;16620:9;:19::i;:::-;16455:192:::0;:::o;14200:174::-;14275:24;;;;:15;:24;;;;;:29;;;;;;;;;;;;;:24;;14329:23;14275:24;14329:14;:23::i;:::-;14320:46;;;;;;;;;;;;14200:174;;:::o;12077:348::-;12170:4;12025:16;;;:7;:16;;;;;;:30;:16;12187:73;;;;;;;9400:2:1;12187:73:0;;;9382:21:1;9439:2;9419:18;;;9412:30;9478:34;9458:18;;;9451:62;9549:14;9529:18;;;9522:42;9581:19;;12187:73:0;9372:234:1;12187:73:0;12271:13;12287:23;12302:7;12287:14;:23::i;:::-;12271:39;;12340:5;12329:16;;:7;:16;;;:51;;;;12373:7;12349:31;;:20;12361:7;12349:11;:20::i;:::-;:31;;;12329:51;:87;;;-1:-1:-1;10699:25:0;;;;10675:4;10699:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;12384:32;12321:96;12077:348;-1:-1:-1;;;;12077:348:0:o;13650:536::-;13809:4;13782:31;;:23;13797:7;13782:14;:23::i;:::-;:31;;;13774:85;;;;;;;12194:2:1;13774:85:0;;;12176:21:1;12233:2;12213:18;;;12206:30;12272:34;12252:18;;;12245:62;12343:11;12323:18;;;12316:39;12372:19;;13774:85:0;12166:231:1;13774:85:0;13878:16;;;13870:65;;;;;;;8289:2:1;13870:65:0;;;8271:21:1;8328:2;8308:18;;;8301:30;8367:34;8347:18;;;8340:62;8438:6;8418:18;;;8411:34;8462:19;;13870:65:0;8261:226:1;13870:65:0;14010:29;14027:1;14031:7;14010:8;:29::i;:::-;14052:15;;;;;;;:9;:15;;;;;:20;;14071:1;;14052:15;:20;;14071:1;;14052:20;:::i;:::-;;;;-1:-1:-1;;14083:13:0;;;;;;;:9;:13;;;;;:18;;14100:1;;14083:13;:18;;14100:1;;14083:18;:::i;:::-;;;;-1:-1:-1;;14112:16:0;;;;:7;:16;;;;;;:21;;;;;;;;;;;;;;14151:27;;14112:16;;14151:27;;;;;;;13650:536;;;:::o;16655:173::-;16711:16;16730:6;;;16747:17;;;;;;;;;;16780:40;;16730:6;;;;;;;16780:40;;16711:16;16780:40;16655:173;;:::o;11607:315::-;11764:28;11774:4;11780:2;11784:7;11764:9;:28::i;:::-;11811:48;11834:4;11840:2;11844:7;11853:5;11811:22;:48::i;:::-;11803:111;;;;;;;7106:2:1;11803:111:0;;;7088:21:1;7145:2;7125:18;;;7118:30;7184:34;7164:18;;;7157:62;7255:20;7235:18;;;7228:48;7293:19;;11803:111:0;7078:240:1;17105:94:0;17157:13;17186:7;17179:14;;;;;:::i;5922:554::-;5978:13;6030:10;6026:53;;-1:-1:-1;;6057:10:0;;;;;;;;;;;;;;;;;;5922:554::o;6026:53::-;6104:5;6089:12;6145:78;6152:9;;6145:78;;6178:8;;;;:::i;:::-;;-1:-1:-1;6201:10:0;;-1:-1:-1;6209:2:0;6201:10;;:::i;:::-;;;6145:78;;;6233:19;6265:6;6255:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6255:17:0;;6233:39;;6283:154;6290:10;;6283:154;;6317:11;6327:1;6317:11;;:::i;:::-;;-1:-1:-1;6386:10:0;6394:2;6386:5;:10;:::i;:::-;6373:24;;:2;:24;:::i;:::-;6360:39;;6343:6;6350;6343:14;;;;;;;;;;;;;;;;;;;:56;;;;;;;;;;-1:-1:-1;6414:11:0;6423:2;6414:11;;:::i;:::-;;;6283:154;;12439:110;12515:26;12525:2;12529:7;12515:26;;;;;;;;;;;;:9;:26::i;14388:803::-;14543:4;14564:13;;;2106:20;2154:8;14560:624;;14600:72;;;;;:36;;;;;;:72;;5692:10;;14651:4;;14657:7;;14666:5;;14600:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14600:72:0;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14596:533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14846:13:0;;14842:272;;14889:60;;;;;7106:2:1;14889:60:0;;;7088:21:1;7145:2;7125:18;;;7118:30;7184:34;7164:18;;;7157:62;7255:20;7235:18;;;7228:48;7293:19;;14889:60:0;7078:240:1;14842:272:0;15064:6;15058:13;15049:6;15045:2;15041:15;15034:38;14596:533;14723:55;;14733:45;14723:55;;-1:-1:-1;14716:62:0;;14560:624;-1:-1:-1;15168:4:0;14388:803;;;;;;:::o;12563:321::-;12693:18;12699:2;12703:7;12693:5;:18::i;:::-;12744:54;12775:1;12779:2;12783:7;12792:5;12744:22;:54::i;:::-;12722:154;;;;;;;7106:2:1;12722:154:0;;;7088:21:1;7145:2;7125:18;;;7118:30;7184:34;7164:18;;;7157:62;7255:20;7235:18;;;7228:48;7293:19;;12722:154:0;7078:240:1;12898:382:0;12978:16;;;12970:61;;;;;;;11059:2:1;12970:61:0;;;11041:21:1;;;11078:18;;;11071:30;11137:34;11117:18;;;11110:62;11189:18;;12970:61:0;11031:182:1;12970:61:0;12001:4;12025:16;;;:7;:16;;;;;;:30;:16;:30;13042:58;;;;;;;7932:2:1;13042:58:0;;;7914:21:1;7971:2;7951:18;;;7944:30;8010;7990:18;;;7983:58;8058:18;;13042:58:0;7904:178:1;13042:58:0;13171:13;;;;;;;:9;:13;;;;;:18;;13188:1;;13171:13;:18;;13188:1;;13171:18;:::i;:::-;;;;-1:-1:-1;;13200:16:0;;;;:7;:16;;;;;;:21;;;;;;;;;;;;;13239:33;;13200:16;;;13239:33;;13200:16;;13239:33;12898:382;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:690:1;78:5;108:18;149:2;141:6;138:14;135:2;;;155:18;;:::i;:::-;289:2;283:9;355:2;343:15;;194:66;339:24;;;365:2;335:33;331:42;319:55;;;389:18;;;409:22;;;386:46;383:2;;;435:18;;:::i;:::-;475:10;471:2;464:22;504:6;495:15;;534:6;526;519:22;574:3;565:6;560:3;556:16;553:25;550:2;;;591:1;588;581:12;550:2;641:6;636:3;629:4;621:6;617:17;604:44;696:1;689:4;680:6;672;668:19;664:30;657:41;;;;88:616;;;;;:::o;709:196::-;777:20;;837:42;826:54;;816:65;;806:2;;895:1;892;885:12;806:2;758:147;;;:::o;910:196::-;969:6;1022:2;1010:9;1001:7;997:23;993:32;990:2;;;1043:6;1035;1028:22;990:2;1071:29;1090:9;1071:29;:::i;1111:270::-;1179:6;1187;1240:2;1228:9;1219:7;1215:23;1211:32;1208:2;;;1261:6;1253;1246:22;1208:2;1289:29;1308:9;1289:29;:::i;:::-;1279:39;;1337:38;1371:2;1360:9;1356:18;1337:38;:::i;:::-;1327:48;;1198:183;;;;;:::o;1386:338::-;1463:6;1471;1479;1532:2;1520:9;1511:7;1507:23;1503:32;1500:2;;;1553:6;1545;1538:22;1500:2;1581:29;1600:9;1581:29;:::i;:::-;1571:39;;1629:38;1663:2;1652:9;1648:18;1629:38;:::i;:::-;1619:48;;1714:2;1703:9;1699:18;1686:32;1676:42;;1490:234;;;;;:::o;1729:696::-;1824:6;1832;1840;1848;1901:3;1889:9;1880:7;1876:23;1872:33;1869:2;;;1923:6;1915;1908:22;1869:2;1951:29;1970:9;1951:29;:::i;:::-;1941:39;;1999:38;2033:2;2022:9;2018:18;1999:38;:::i;:::-;1989:48;;2084:2;2073:9;2069:18;2056:32;2046:42;;2139:2;2128:9;2124:18;2111:32;2166:18;2158:6;2155:30;2152:2;;;2203:6;2195;2188:22;2152:2;2231:22;;2284:4;2276:13;;2272:27;-1:-1:-1;2262:2:1;;2318:6;2310;2303:22;2262:2;2346:73;2411:7;2406:2;2393:16;2388:2;2384;2380:11;2346:73;:::i;:::-;2336:83;;;1859:566;;;;;;;:::o;2430:367::-;2495:6;2503;2556:2;2544:9;2535:7;2531:23;2527:32;2524:2;;;2577:6;2569;2562:22;2524:2;2605:29;2624:9;2605:29;:::i;:::-;2595:39;;2684:2;2673:9;2669:18;2656:32;2731:5;2724:13;2717:21;2710:5;2707:32;2697:2;;2758:6;2750;2743:22;2697:2;2786:5;2776:15;;;2514:283;;;;;:::o;2802:264::-;2870:6;2878;2931:2;2919:9;2910:7;2906:23;2902:32;2899:2;;;2952:6;2944;2937:22;2899:2;2980:29;2999:9;2980:29;:::i;:::-;2970:39;3056:2;3041:18;;;;3028:32;;-1:-1:-1;;;2889:177:1:o;3071:665::-;3157:6;3165;3218:2;3206:9;3197:7;3193:23;3189:32;3186:2;;;3239:6;3231;3224:22;3186:2;3284:9;3271:23;3313:18;3354:2;3346:6;3343:14;3340:2;;;3375:6;3367;3360:22;3340:2;3418:6;3407:9;3403:22;3393:32;;3463:7;3456:4;3452:2;3448:13;3444:27;3434:2;;3490:6;3482;3475:22;3434:2;3535;3522:16;3561:2;3553:6;3550:14;3547:2;;;3582:6;3574;3567:22;3547:2;3640:7;3635:2;3625:6;3622:1;3618:14;3614:2;3610:23;3606:32;3603:45;3600:2;;;3666:6;3658;3651:22;3600:2;3702;3694:11;;;;;3724:6;;-1:-1:-1;3176:560:1;;-1:-1:-1;;;;3176:560:1:o;3741:255::-;3799:6;3852:2;3840:9;3831:7;3827:23;3823:32;3820:2;;;3873:6;3865;3858:22;3820:2;3917:9;3904:23;3936:30;3960:5;3936:30;:::i;4001:259::-;4070:6;4123:2;4111:9;4102:7;4098:23;4094:32;4091:2;;;4144:6;4136;4129:22;4091:2;4181:9;4175:16;4200:30;4224:5;4200:30;:::i;4265:480::-;4334:6;4387:2;4375:9;4366:7;4362:23;4358:32;4355:2;;;4408:6;4400;4393:22;4355:2;4453:9;4440:23;4486:18;4478:6;4475:30;4472:2;;;4523:6;4515;4508:22;4472:2;4551:22;;4604:4;4596:13;;4592:27;-1:-1:-1;4582:2:1;;4638:6;4630;4623:22;4582:2;4666:73;4731:7;4726:2;4713:16;4708:2;4704;4700:11;4666:73;:::i;4750:190::-;4809:6;4862:2;4850:9;4841:7;4837:23;4833:32;4830:2;;;4883:6;4875;4868:22;4830:2;-1:-1:-1;4911:23:1;;4820:120;-1:-1:-1;4820:120:1:o;4945:316::-;4986:3;5024:5;5018:12;5051:6;5046:3;5039:19;5067:63;5123:6;5116:4;5111:3;5107:14;5100:4;5093:5;5089:16;5067:63;:::i;:::-;5175:2;5163:15;5180:66;5159:88;5150:98;;;;5250:4;5146:109;;4994:267;-1:-1:-1;;4994:267:1:o;5266:470::-;5445:3;5483:6;5477:13;5499:53;5545:6;5540:3;5533:4;5525:6;5521:17;5499:53;:::i;:::-;5615:13;;5574:16;;;;5637:57;5615:13;5574:16;5671:4;5659:17;;5637:57;:::i;:::-;5710:20;;5453:283;-1:-1:-1;;;;5453:283:1:o;5972:511::-;6166:4;6195:42;6276:2;6268:6;6264:15;6253:9;6246:34;6328:2;6320:6;6316:15;6311:2;6300:9;6296:18;6289:43;;6368:6;6363:2;6352:9;6348:18;6341:34;6411:3;6406:2;6395:9;6391:18;6384:31;6432:45;6472:3;6461:9;6457:19;6449:6;6432:45;:::i;:::-;6424:53;6175:308;-1:-1:-1;;;;;;6175:308:1:o;6680:219::-;6829:2;6818:9;6811:21;6792:4;6849:44;6889:2;6878:9;6874:18;6866:6;6849:44;:::i;13820:128::-;13860:3;13891:1;13887:6;13884:1;13881:13;13878:2;;;13897:18;;:::i;:::-;-1:-1:-1;13933:9:1;;13868:80::o;13953:120::-;13993:1;14019;14009:2;;14024:18;;:::i;:::-;-1:-1:-1;14058:9:1;;13999:74::o;14078:125::-;14118:4;14146:1;14143;14140:8;14137:2;;;14151:18;;:::i;:::-;-1:-1:-1;14188:9:1;;14127:76::o;14208:258::-;14280:1;14290:113;14304:6;14301:1;14298:13;14290:113;;;14380:11;;;14374:18;14361:11;;;14354:39;14326:2;14319:10;14290:113;;;14421:6;14418:1;14415:13;14412:2;;;-1:-1:-1;;14456:1:1;14438:16;;14431:27;14261:205::o;14471:437::-;14550:1;14546:12;;;;14593;;;14614:2;;14668:4;14660:6;14656:17;14646:27;;14614:2;14721;14713:6;14710:14;14690:18;14687:38;14684:2;;;14758:77;14755:1;14748:88;14859:4;14856:1;14849:15;14887:4;14884:1;14877:15;14684:2;;14526:382;;;:::o;14913:195::-;14952:3;14983:66;14976:5;14973:77;14970:2;;;15053:18;;:::i;:::-;-1:-1:-1;15100:1:1;15089:13;;14960:148::o;15113:112::-;15145:1;15171;15161:2;;15176:18;;:::i;:::-;-1:-1:-1;15210:9:1;;15151:74::o;15230:184::-;15282:77;15279:1;15272:88;15379:4;15376:1;15369:15;15403:4;15400:1;15393:15;15419:184;15471:77;15468:1;15461:88;15568:4;15565:1;15558:15;15592:4;15589:1;15582:15;15608:184;15660:77;15657:1;15650:88;15757:4;15754:1;15747:15;15781:4;15778:1;15771:15;15797:177;15882:66;15875:5;15871:78;15864:5;15861:89;15851:2;;15964:1;15961;15954:12
Swarm Source
ipfs://db6298671a2731bf9dccd7217dd781b3fb0e4f82fd28bf8f2d82db755dfd4a63
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.