ERC-20
Overview
Max Total Supply
21,000,000 MAN
Holders
108
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
20,640 MANValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MoneyMan
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-03 */ pragma solidity ^0.8.20; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); } /** * @dev Interface for the optional metadata functions from the ERC20 standard. */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } pragma solidity ^0.8.20; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } /** * @dev Standard ERC20 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens. */ interface IERC20Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC20InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC20InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers. * @param spender Address that may be allowed to operate on tokens without being their owner. * @param allowance Amount of tokens a `spender` is allowed to operate with. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC20InvalidApprover(address approver); /** * @dev Indicates a failure with the `spender` to be approved. Used in approvals. * @param spender Address that may be allowed to operate on tokens without being their owner. */ error ERC20InvalidSpender(address spender); } /** * @dev Standard ERC721 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens. */ interface IERC721Errors { /** * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. * Used in balance queries. * @param owner Address of the current owner of a token. */ error ERC721InvalidOwner(address owner); /** * @dev Indicates a `tokenId` whose `owner` is the zero address. * @param tokenId Identifier number of a token. */ error ERC721NonexistentToken(uint256 tokenId); /** * @dev Indicates an error related to the ownership over a particular token. Used in transfers. * @param sender Address whose tokens are being transferred. * @param tokenId Identifier number of a token. * @param owner Address of the current owner of a token. */ error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC721InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC721InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param tokenId Identifier number of a token. */ error ERC721InsufficientApproval(address operator, uint256 tokenId); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC721InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC721InvalidOperator(address operator); } /** * @dev Standard ERC1155 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens. */ interface IERC1155Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. * @param tokenId Identifier number of a token. */ error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC1155InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC1155InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param owner Address of the current owner of a token. */ error ERC1155MissingApprovalForAll(address operator, address owner); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC1155InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC1155InvalidOperator(address operator); /** * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. * Used in batch transfers. * @param idsLength Length of the array of token identifiers * @param valuesLength Length of the array of token amounts */ error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength); } /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. */ abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors { mapping(address account => uint256) private _balances; mapping(address account => mapping(address spender => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the default value returned by this function, unless * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `value`. */ function transfer(address to, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, value); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `value`. * - the caller must have allowance for ``from``'s tokens of at least * `value`. */ function transferFrom(address from, address to, uint256 value) public virtual returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, value); _transfer(from, to, value); return true; } /** * @dev Moves a `value` amount of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _transfer(address from, address to, uint256 value) internal { if (from == address(0)) { revert ERC20InvalidSender(address(0)); } if (to == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(from, to, value); } /** * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from` * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding * this function. * * Emits a {Transfer} event. */ function _update(address from, address to, uint256 value) internal virtual { if (from == address(0)) { // Overflow check required: The rest of the code assumes that totalSupply never overflows _totalSupply += value; } else { uint256 fromBalance = _balances[from]; if (fromBalance < value) { revert ERC20InsufficientBalance(from, fromBalance, value); } unchecked { // Overflow not possible: value <= fromBalance <= totalSupply. _balances[from] = fromBalance - value; } } if (to == address(0)) { unchecked { // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply. _totalSupply -= value; } } else { unchecked { // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256. _balances[to] += value; } } emit Transfer(from, to, value); } /** * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0). * Relies on the `_update` mechanism * * Emits a {Transfer} event with `from` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _mint(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(address(0), account, value); } /** * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply. * Relies on the `_update` mechanism. * * Emits a {Transfer} event with `to` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead */ function _burn(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidSender(address(0)); } _update(account, address(0), value); } /** * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. * * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument. */ function _approve(address owner, address spender, uint256 value) internal { _approve(owner, spender, value, true); } /** * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event. * * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any * `Approval` event during `transferFrom` operations. * * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to * true using the following override: * ``` * function _approve(address owner, address spender, uint256 value, bool) internal virtual override { * super._approve(owner, spender, value, true); * } * ``` * * Requirements are the same as {_approve}. */ function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = value; if (emitEvent) { emit Approval(owner, spender, value); } } /** * @dev Updates `owner` s allowance for `spender` based on spent `value`. * * Does not update the allowance value in case of infinite allowance. * Revert if not enough allowance is available. * * Does not emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 value) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < value) { revert ERC20InsufficientAllowance(spender, currentAllowance, value); } unchecked { _approve(owner, spender, currentAllowance - value, false); } } } } /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ abstract contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys a `value` amount of tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 value) public virtual { _burn(_msgSender(), value); } /** * @dev Destroys a `value` amount of tokens from `account`, deducting from * the caller's allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `value`. */ function burnFrom(address account, uint256 value) public virtual { _spendAllowance(account, _msgSender(), value); _burn(account, value); } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } error InvalidTransfer(address from, address to); error ExceedsMaxWalletAmount(); error InvalidConfiguration(); contract MoneyMan is ERC20, ERC20Burnable, Ownable { mapping(address => bool) public blacklist; mapping(address => bool) public maxWalletExcluded; uint256 public maxWallet = 420000 * 10**18; //2% of total supply constructor() ERC20("Money Man", "MAN") Ownable(msg.sender) { address factory = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f; address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; (address token0, address token1) = WETH < address(this) ? (WETH, address(this)) : (address(this), WETH); address pair = address(uint160(uint(keccak256(abi.encodePacked( hex'ff', factory, keccak256(abi.encodePacked(token0, token1)), hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' ))))); maxWalletExcluded[pair] = true; maxWalletExcluded[msg.sender] = true; _mint(msg.sender, 21000000 * 10 ** decimals()); } function _update( address from, address to, uint256 amount ) internal override { if (blacklist[from] || blacklist[to]) { revert InvalidTransfer(from, to); } if (!maxWalletExcluded[to] && amount + balanceOf(to) > maxWallet) { revert ExceedsMaxWalletAmount(); } super._update(from, to, amount); } function setBlacklist(address account, bool value) external onlyOwner { blacklist[account] = value; } function blacklistMany(address[] memory accounts) external onlyOwner { uint256 len = accounts.length; for (uint256 i = 0; i < len; i++) { blacklist[accounts[i]] = true; } } function setMaxWalletExcluded(address account, bool value) external onlyOwner { maxWalletExcluded[account] = value; } function excludeMaxWalletMany(address[] memory accounts) external onlyOwner { uint256 len = accounts.length; for (uint256 i = 0; i < len; i++) { maxWalletExcluded[accounts[i]] = true; } } // 5 = 0.5% function setMaxWalletAmount(uint256 percent) external onlyOwner { if (percent < 5 || percent > 1000) revert InvalidConfiguration(); maxWallet = totalSupply() * percent / 1000; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"ExceedsMaxWalletAmount","type":"error"},{"inputs":[],"name":"InvalidConfiguration","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"InvalidTransfer","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","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":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"blacklistMany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"excludeMaxWalletMany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxWalletExcluded","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMaxWalletExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526958f03ee118a13e8000006008553480156200001e575f80fd5b50336040518060400160405280600981526020017f4d6f6e6579204d616e00000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4d414e000000000000000000000000000000000000000000000000000000000081525081600390816200009d919062000ac6565b508060049081620000af919062000ac6565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000125575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200011c919062000bed565b60405180910390fd5b6200013681620002fb60201b60201c565b505f735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f90505f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290505f803073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1610620001a5573083620001a8565b82305b915091505f848383604051602001620001c392919062000c55565b60405160208183030381529060405280519060200120604051602001620001ec92919062000d57565b604051602081830303815290604052805190602001205f1c9050600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620002f033620002c5620003be60201b60201c565b600a620002d3919062000f29565b6301406f40620002e4919062000f79565b620003c660201b60201c565b50505050506200108f565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000439575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000430919062000bed565b60405180910390fd5b6200044c5f83836200045060201b60201c565b5050565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680620004ec575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15620005335782826040517f709ac0170000000000000000000000000000000000000000000000000000000081526004016200052a92919062000fc3565b60405180910390fd5b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015620005a957506008546200059a83620005f960201b60201c565b82620005a7919062000fee565b115b15620005e1576040517ffd42866100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620005f48383836200063e60201b60201c565b505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000692578060025f82825462000685919062000fee565b9250508190555062000763565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200071e578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620007159392919062001039565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007ac578060025f8282540392505081905550620007f6565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000855919062001074565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620008de57607f821691505b602082108103620008f457620008f362000899565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091b565b6200096486836200091b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620009ae620009a8620009a2846200097c565b62000985565b6200097c565b9050919050565b5f819050919050565b620009c9836200098e565b620009e1620009d882620009b5565b84845462000927565b825550505050565b5f90565b620009f7620009e9565b62000a04818484620009be565b505050565b5b8181101562000a2b5762000a1f5f82620009ed565b60018101905062000a0a565b5050565b601f82111562000a7a5762000a4481620008fa565b62000a4f846200090c565b8101602085101562000a5f578190505b62000a7762000a6e856200090c565b83018262000a09565b50505b505050565b5f82821c905092915050565b5f62000a9c5f198460080262000a7f565b1980831691505092915050565b5f62000ab6838362000a8b565b9150826002028217905092915050565b62000ad18262000862565b67ffffffffffffffff81111562000aed5762000aec6200086c565b5b62000af98254620008c6565b62000b0682828562000a2f565b5f60209050601f83116001811462000b3c575f841562000b27578287015190505b62000b33858262000aa9565b86555062000ba2565b601f19841662000b4c86620008fa565b5f5b8281101562000b755784890151825560018201915060208501945060208101905062000b4e565b8683101562000b95578489015162000b91601f89168262000a8b565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000bd58262000baa565b9050919050565b62000be78162000bc9565b82525050565b5f60208201905062000c025f83018462000bdc565b92915050565b5f8160601b9050919050565b5f62000c208262000c08565b9050919050565b5f62000c338262000c14565b9050919050565b62000c4f62000c498262000bc9565b62000c27565b82525050565b5f62000c62828562000c3a565b60148201915062000c74828462000c3a565b6014820191508190509392505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f62000cc460018362000c84565b915062000cd18262000c8e565b600182019050919050565b5f819050919050565b5f819050919050565b62000d0362000cfd8262000cdc565b62000ce5565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f5f82015250565b5f62000d3f60208362000c84565b915062000d4c8262000d09565b602082019050919050565b5f62000d638262000cb6565b915062000d71828562000c3a565b60148201915062000d83828462000cee565b60208201915062000d948262000d31565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000e2a5780860481111562000e025762000e0162000da0565b5b600185161562000e125780820291505b808102905062000e228562000dcd565b945062000de2565b94509492505050565b5f8262000e44576001905062000f16565b8162000e53575f905062000f16565b816001811462000e6c576002811462000e775762000ead565b600191505062000f16565b60ff84111562000e8c5762000e8b62000da0565b5b8360020a91508482111562000ea65762000ea562000da0565b5b5062000f16565b5060208310610133831016604e8410600b841016171562000ee75782820a90508381111562000ee15762000ee062000da0565b5b62000f16565b62000ef6848484600162000dd9565b9250905081840481111562000f105762000f0f62000da0565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000f35826200097c565b915062000f428362000f1d565b925062000f717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e33565b905092915050565b5f62000f85826200097c565b915062000f92836200097c565b925082820262000fa2816200097c565b9150828204841483151762000fbc5762000fbb62000da0565b5b5092915050565b5f60408201905062000fd85f83018562000bdc565b62000fe7602083018462000bdc565b9392505050565b5f62000ffa826200097c565b915062001007836200097c565b925082820190508082111562001022576200102162000da0565b5b92915050565b62001033816200097c565b82525050565b5f6060820190506200104e5f83018662000bdc565b6200105d602083018562001028565b6200106c604083018462001028565b949350505050565b5f602082019050620010895f83018462001028565b92915050565b611a91806200109d5f395ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c8063715018a6116100b6578063acd0d9871161007a578063acd0d9871461034c578063ae0f1cc01461037c578063dd62ed3e14610398578063f2fde38b146103c8578063f8b45b05146103e4578063f9f92be41461040257610140565b8063715018a6146102ba57806379cc6790146102c45780638da5cb5b146102e057806395d89b41146102fe578063a9059cbb1461031c57610140565b806327a14fc21161010857806327a14fc2146101fc578063313ce5671461021857806342966c6814610236578063580037bf14610252578063611bfa371461026e57806370a082311461028a57610140565b806306fdde0314610144578063095ea7b314610162578063153b0d1e1461019257806318160ddd146101ae57806323b872dd146101cc575b5f80fd5b61014c610432565b60405161015991906113aa565b60405180910390f35b61017c60048036038101906101779190611468565b6104c2565b60405161018991906114c0565b60405180910390f35b6101ac60048036038101906101a79190611503565b6104e4565b005b6101b6610544565b6040516101c39190611550565b60405180910390f35b6101e660048036038101906101e19190611569565b61054d565b6040516101f391906114c0565b60405180910390f35b610216600480360381019061021191906115b9565b61057b565b005b6102206105f3565b60405161022d91906115ff565b60405180910390f35b610250600480360381019061024b91906115b9565b6105fb565b005b61026c60048036038101906102679190611758565b61060f565b005b61028860048036038101906102839190611758565b6106ad565b005b6102a4600480360381019061029f919061179f565b61074b565b6040516102b19190611550565b60405180910390f35b6102c2610790565b005b6102de60048036038101906102d99190611468565b6107a3565b005b6102e86107c3565b6040516102f591906117d9565b60405180910390f35b6103066107eb565b60405161031391906113aa565b60405180910390f35b61033660048036038101906103319190611468565b61087b565b60405161034391906114c0565b60405180910390f35b6103666004803603810190610361919061179f565b61089d565b60405161037391906114c0565b60405180910390f35b61039660048036038101906103919190611503565b6108ba565b005b6103b260048036038101906103ad91906117f2565b61091a565b6040516103bf9190611550565b60405180910390f35b6103e260048036038101906103dd919061179f565b61099c565b005b6103ec610a20565b6040516103f99190611550565b60405180910390f35b61041c6004803603810190610417919061179f565b610a26565b60405161042991906114c0565b60405180910390f35b6060600380546104419061185d565b80601f016020809104026020016040519081016040528092919081815260200182805461046d9061185d565b80156104b85780601f1061048f576101008083540402835291602001916104b8565b820191905f5260205f20905b81548152906001019060200180831161049b57829003601f168201915b5050505050905090565b5f806104cc610a43565b90506104d9818585610a4a565b600191505092915050565b6104ec610a5c565b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600254905090565b5f80610557610a43565b9050610564858285610ae3565b61056f858585610b75565b60019150509392505050565b610583610a5c565b600581108061059357506103e881115b156105ca576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e8816105d6610544565b6105e091906118ba565b6105ea9190611928565b60088190555050565b5f6012905090565b61060c610606610a43565b82610c65565b50565b610617610a5c565b5f815190505f5b818110156106a857600160075f85848151811061063e5761063d611958565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806106a090611985565b91505061061e565b505050565b6106b5610a5c565b5f815190505f5b8181101561074657600160065f8584815181106106dc576106db611958565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061073e90611985565b9150506106bc565b505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610798610a5c565b6107a15f610ce4565b565b6107b5826107af610a43565b83610ae3565b6107bf8282610c65565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107fa9061185d565b80601f01602080910402602001604051908101604052809291908181526020018280546108269061185d565b80156108715780601f1061084857610100808354040283529160200191610871565b820191905f5260205f20905b81548152906001019060200180831161085457829003601f168201915b5050505050905090565b5f80610885610a43565b9050610892818585610b75565b600191505092915050565b6007602052805f5260405f205f915054906101000a900460ff1681565b6108c2610a5c565b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109a4610a5c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a14575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610a0b91906117d9565b60405180910390fd5b610a1d81610ce4565b50565b60085481565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b610a578383836001610da7565b505050565b610a64610a43565b73ffffffffffffffffffffffffffffffffffffffff16610a826107c3565b73ffffffffffffffffffffffffffffffffffffffff1614610ae157610aa5610a43565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ad891906117d9565b60405180910390fd5b565b5f610aee848461091a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b6f5781811015610b60578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610b57939291906119cc565b60405180910390fd5b610b6e84848484035f610da7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610be5575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610bdc91906117d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c55575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610c4c91906117d9565b60405180910390fd5b610c60838383610f76565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cd5575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610ccc91906117d9565b60405180910390fd5b610ce0825f83610f76565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e17575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610e0e91906117d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e87575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610e7e91906117d9565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610f70578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f679190611550565b60405180910390a35b50505050565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611011575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156110555782826040517f709ac01700000000000000000000000000000000000000000000000000000000815260040161104c929190611a01565b60405180910390fd5b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156110c057506008546110b38361074b565b826110be9190611a28565b115b156110f7576040517ffd42866100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611102838383611107565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611157578060025f82825461114b9190611a28565b92505081905550611225565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156111e0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016111d7939291906119cc565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361126c578060025f82825403925050819055506112b6565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113139190611550565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561135757808201518184015260208101905061133c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61137c82611320565b611386818561132a565b935061139681856020860161133a565b61139f81611362565b840191505092915050565b5f6020820190508181035f8301526113c28184611372565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611404826113db565b9050919050565b611414816113fa565b811461141e575f80fd5b50565b5f8135905061142f8161140b565b92915050565b5f819050919050565b61144781611435565b8114611451575f80fd5b50565b5f813590506114628161143e565b92915050565b5f806040838503121561147e5761147d6113d3565b5b5f61148b85828601611421565b925050602061149c85828601611454565b9150509250929050565b5f8115159050919050565b6114ba816114a6565b82525050565b5f6020820190506114d35f8301846114b1565b92915050565b6114e2816114a6565b81146114ec575f80fd5b50565b5f813590506114fd816114d9565b92915050565b5f8060408385031215611519576115186113d3565b5b5f61152685828601611421565b9250506020611537858286016114ef565b9150509250929050565b61154a81611435565b82525050565b5f6020820190506115635f830184611541565b92915050565b5f805f606084860312156115805761157f6113d3565b5b5f61158d86828701611421565b935050602061159e86828701611421565b92505060406115af86828701611454565b9150509250925092565b5f602082840312156115ce576115cd6113d3565b5b5f6115db84828501611454565b91505092915050565b5f60ff82169050919050565b6115f9816115e4565b82525050565b5f6020820190506116125f8301846115f0565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61165282611362565b810181811067ffffffffffffffff821117156116715761167061161c565b5b80604052505050565b5f6116836113ca565b905061168f8282611649565b919050565b5f67ffffffffffffffff8211156116ae576116ad61161c565b5b602082029050602081019050919050565b5f80fd5b5f6116d56116d084611694565b61167a565b905080838252602082019050602084028301858111156116f8576116f76116bf565b5b835b81811015611721578061170d8882611421565b8452602084019350506020810190506116fa565b5050509392505050565b5f82601f83011261173f5761173e611618565b5b813561174f8482602086016116c3565b91505092915050565b5f6020828403121561176d5761176c6113d3565b5b5f82013567ffffffffffffffff81111561178a576117896113d7565b5b6117968482850161172b565b91505092915050565b5f602082840312156117b4576117b36113d3565b5b5f6117c184828501611421565b91505092915050565b6117d3816113fa565b82525050565b5f6020820190506117ec5f8301846117ca565b92915050565b5f8060408385031215611808576118076113d3565b5b5f61181585828601611421565b925050602061182685828601611421565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061187457607f821691505b60208210810361188757611886611830565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6118c482611435565b91506118cf83611435565b92508282026118dd81611435565b915082820484148315176118f4576118f361188d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61193282611435565b915061193d83611435565b92508261194d5761194c6118fb565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61198f82611435565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036119c1576119c061188d565b5b600182019050919050565b5f6060820190506119df5f8301866117ca565b6119ec6020830185611541565b6119f96040830184611541565b949350505050565b5f604082019050611a145f8301856117ca565b611a2160208301846117ca565b9392505050565b5f611a3282611435565b9150611a3d83611435565b9250828201905080821115611a5557611a5461188d565b5b9291505056fea264697066735822122014da60730c827a458f84b0b3bffeefda9b8505cdcd524bc5a61eb8abff0793f364736f6c63430008140033
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610140575f3560e01c8063715018a6116100b6578063acd0d9871161007a578063acd0d9871461034c578063ae0f1cc01461037c578063dd62ed3e14610398578063f2fde38b146103c8578063f8b45b05146103e4578063f9f92be41461040257610140565b8063715018a6146102ba57806379cc6790146102c45780638da5cb5b146102e057806395d89b41146102fe578063a9059cbb1461031c57610140565b806327a14fc21161010857806327a14fc2146101fc578063313ce5671461021857806342966c6814610236578063580037bf14610252578063611bfa371461026e57806370a082311461028a57610140565b806306fdde0314610144578063095ea7b314610162578063153b0d1e1461019257806318160ddd146101ae57806323b872dd146101cc575b5f80fd5b61014c610432565b60405161015991906113aa565b60405180910390f35b61017c60048036038101906101779190611468565b6104c2565b60405161018991906114c0565b60405180910390f35b6101ac60048036038101906101a79190611503565b6104e4565b005b6101b6610544565b6040516101c39190611550565b60405180910390f35b6101e660048036038101906101e19190611569565b61054d565b6040516101f391906114c0565b60405180910390f35b610216600480360381019061021191906115b9565b61057b565b005b6102206105f3565b60405161022d91906115ff565b60405180910390f35b610250600480360381019061024b91906115b9565b6105fb565b005b61026c60048036038101906102679190611758565b61060f565b005b61028860048036038101906102839190611758565b6106ad565b005b6102a4600480360381019061029f919061179f565b61074b565b6040516102b19190611550565b60405180910390f35b6102c2610790565b005b6102de60048036038101906102d99190611468565b6107a3565b005b6102e86107c3565b6040516102f591906117d9565b60405180910390f35b6103066107eb565b60405161031391906113aa565b60405180910390f35b61033660048036038101906103319190611468565b61087b565b60405161034391906114c0565b60405180910390f35b6103666004803603810190610361919061179f565b61089d565b60405161037391906114c0565b60405180910390f35b61039660048036038101906103919190611503565b6108ba565b005b6103b260048036038101906103ad91906117f2565b61091a565b6040516103bf9190611550565b60405180910390f35b6103e260048036038101906103dd919061179f565b61099c565b005b6103ec610a20565b6040516103f99190611550565b60405180910390f35b61041c6004803603810190610417919061179f565b610a26565b60405161042991906114c0565b60405180910390f35b6060600380546104419061185d565b80601f016020809104026020016040519081016040528092919081815260200182805461046d9061185d565b80156104b85780601f1061048f576101008083540402835291602001916104b8565b820191905f5260205f20905b81548152906001019060200180831161049b57829003601f168201915b5050505050905090565b5f806104cc610a43565b90506104d9818585610a4a565b600191505092915050565b6104ec610a5c565b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600254905090565b5f80610557610a43565b9050610564858285610ae3565b61056f858585610b75565b60019150509392505050565b610583610a5c565b600581108061059357506103e881115b156105ca576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e8816105d6610544565b6105e091906118ba565b6105ea9190611928565b60088190555050565b5f6012905090565b61060c610606610a43565b82610c65565b50565b610617610a5c565b5f815190505f5b818110156106a857600160075f85848151811061063e5761063d611958565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806106a090611985565b91505061061e565b505050565b6106b5610a5c565b5f815190505f5b8181101561074657600160065f8584815181106106dc576106db611958565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061073e90611985565b9150506106bc565b505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610798610a5c565b6107a15f610ce4565b565b6107b5826107af610a43565b83610ae3565b6107bf8282610c65565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107fa9061185d565b80601f01602080910402602001604051908101604052809291908181526020018280546108269061185d565b80156108715780601f1061084857610100808354040283529160200191610871565b820191905f5260205f20905b81548152906001019060200180831161085457829003601f168201915b5050505050905090565b5f80610885610a43565b9050610892818585610b75565b600191505092915050565b6007602052805f5260405f205f915054906101000a900460ff1681565b6108c2610a5c565b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109a4610a5c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a14575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610a0b91906117d9565b60405180910390fd5b610a1d81610ce4565b50565b60085481565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b610a578383836001610da7565b505050565b610a64610a43565b73ffffffffffffffffffffffffffffffffffffffff16610a826107c3565b73ffffffffffffffffffffffffffffffffffffffff1614610ae157610aa5610a43565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ad891906117d9565b60405180910390fd5b565b5f610aee848461091a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b6f5781811015610b60578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610b57939291906119cc565b60405180910390fd5b610b6e84848484035f610da7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610be5575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610bdc91906117d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c55575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610c4c91906117d9565b60405180910390fd5b610c60838383610f76565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cd5575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610ccc91906117d9565b60405180910390fd5b610ce0825f83610f76565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e17575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610e0e91906117d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e87575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610e7e91906117d9565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610f70578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f679190611550565b60405180910390a35b50505050565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611011575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156110555782826040517f709ac01700000000000000000000000000000000000000000000000000000000815260040161104c929190611a01565b60405180910390fd5b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156110c057506008546110b38361074b565b826110be9190611a28565b115b156110f7576040517ffd42866100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611102838383611107565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611157578060025f82825461114b9190611a28565b92505081905550611225565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156111e0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016111d7939291906119cc565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361126c578060025f82825403925050819055506112b6565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113139190611550565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561135757808201518184015260208101905061133c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61137c82611320565b611386818561132a565b935061139681856020860161133a565b61139f81611362565b840191505092915050565b5f6020820190508181035f8301526113c28184611372565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611404826113db565b9050919050565b611414816113fa565b811461141e575f80fd5b50565b5f8135905061142f8161140b565b92915050565b5f819050919050565b61144781611435565b8114611451575f80fd5b50565b5f813590506114628161143e565b92915050565b5f806040838503121561147e5761147d6113d3565b5b5f61148b85828601611421565b925050602061149c85828601611454565b9150509250929050565b5f8115159050919050565b6114ba816114a6565b82525050565b5f6020820190506114d35f8301846114b1565b92915050565b6114e2816114a6565b81146114ec575f80fd5b50565b5f813590506114fd816114d9565b92915050565b5f8060408385031215611519576115186113d3565b5b5f61152685828601611421565b9250506020611537858286016114ef565b9150509250929050565b61154a81611435565b82525050565b5f6020820190506115635f830184611541565b92915050565b5f805f606084860312156115805761157f6113d3565b5b5f61158d86828701611421565b935050602061159e86828701611421565b92505060406115af86828701611454565b9150509250925092565b5f602082840312156115ce576115cd6113d3565b5b5f6115db84828501611454565b91505092915050565b5f60ff82169050919050565b6115f9816115e4565b82525050565b5f6020820190506116125f8301846115f0565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61165282611362565b810181811067ffffffffffffffff821117156116715761167061161c565b5b80604052505050565b5f6116836113ca565b905061168f8282611649565b919050565b5f67ffffffffffffffff8211156116ae576116ad61161c565b5b602082029050602081019050919050565b5f80fd5b5f6116d56116d084611694565b61167a565b905080838252602082019050602084028301858111156116f8576116f76116bf565b5b835b81811015611721578061170d8882611421565b8452602084019350506020810190506116fa565b5050509392505050565b5f82601f83011261173f5761173e611618565b5b813561174f8482602086016116c3565b91505092915050565b5f6020828403121561176d5761176c6113d3565b5b5f82013567ffffffffffffffff81111561178a576117896113d7565b5b6117968482850161172b565b91505092915050565b5f602082840312156117b4576117b36113d3565b5b5f6117c184828501611421565b91505092915050565b6117d3816113fa565b82525050565b5f6020820190506117ec5f8301846117ca565b92915050565b5f8060408385031215611808576118076113d3565b5b5f61181585828601611421565b925050602061182685828601611421565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061187457607f821691505b60208210810361188757611886611830565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6118c482611435565b91506118cf83611435565b92508282026118dd81611435565b915082820484148315176118f4576118f361188d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61193282611435565b915061193d83611435565b92508261194d5761194c6118fb565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61198f82611435565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036119c1576119c061188d565b5b600182019050919050565b5f6060820190506119df5f8301866117ca565b6119ec6020830185611541565b6119f96040830184611541565b949350505050565b5f604082019050611a145f8301856117ca565b611a2160208301846117ca565b9392505050565b5f611a3282611435565b9150611a3d83611435565b9250828201905080821115611a5557611a5461188d565b5b9291505056fea264697066735822122014da60730c827a458f84b0b3bffeefda9b8505cdcd524bc5a61eb8abff0793f364736f6c63430008140033
Deployed Bytecode Sourcemap
25926:2381:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12482:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14775:190;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27358:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13584:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15543:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28102:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13435:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22202:89;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27845:232;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27481:217;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13746:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24974:103;;;:::i;:::-;;22620:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24299:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12692:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14069:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26034:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27706:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14314:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25232:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26092:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25986:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12482:91;12527:13;12560:5;12553:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12482:91;:::o;14775:190::-;14848:4;14865:13;14881:12;:10;:12::i;:::-;14865:28;;14904:31;14913:5;14920:7;14929:5;14904:8;:31::i;:::-;14953:4;14946:11;;;14775:190;;;;:::o;27358:115::-;24185:13;:11;:13::i;:::-;27460:5:::1;27439:9;:18;27449:7;27439:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;27358:115:::0;;:::o;13584:99::-;13636:7;13663:12;;13656:19;;13584:99;:::o;15543:249::-;15630:4;15647:15;15665:12;:10;:12::i;:::-;15647:30;;15688:37;15704:4;15710:7;15719:5;15688:15;:37::i;:::-;15736:26;15746:4;15752:2;15756:5;15736:9;:26::i;:::-;15780:4;15773:11;;;15543:249;;;;;:::o;28102:200::-;24185:13;:11;:13::i;:::-;28191:1:::1;28181:7;:11;:29;;;;28206:4;28196:7;:14;28181:29;28177:64;;;28219:22;;;;;;;;;;;;;;28177:64;28290:4;28280:7;28264:13;:11;:13::i;:::-;:23;;;;:::i;:::-;:30;;;;:::i;:::-;28252:9;:42;;;;28102:200:::0;:::o;13435:84::-;13484:5;13509:2;13502:9;;13435:84;:::o;22202:89::-;22257:26;22263:12;:10;:12::i;:::-;22277:5;22257;:26::i;:::-;22202:89;:::o;27845:232::-;24185:13;:11;:13::i;:::-;27932:11:::1;27946:8;:15;27932:29;;27977:9;27972:98;27996:3;27992:1;:7;27972:98;;;28054:4;28021:17;:30;28039:8;28048:1;28039:11;;;;;;;;:::i;:::-;;;;;;;;28021:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;28001:3;;;;;:::i;:::-;;;;27972:98;;;;27921:156;27845:232:::0;:::o;27481:217::-;24185:13;:11;:13::i;:::-;27561:11:::1;27575:8;:15;27561:29;;27606:9;27601:90;27625:3;27621:1;:7;27601:90;;;27675:4;27650:9;:22;27660:8;27669:1;27660:11;;;;;;;;:::i;:::-;;;;;;;;27650:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;27630:3;;;;;:::i;:::-;;;;27601:90;;;;27550:148;27481:217:::0;:::o;13746:118::-;13811:7;13838:9;:18;13848:7;13838:18;;;;;;;;;;;;;;;;13831:25;;13746:118;;;:::o;24974:103::-;24185:13;:11;:13::i;:::-;25039:30:::1;25066:1;25039:18;:30::i;:::-;24974:103::o:0;22620:161::-;22696:45;22712:7;22721:12;:10;:12::i;:::-;22735:5;22696:15;:45::i;:::-;22752:21;22758:7;22767:5;22752;:21::i;:::-;22620:161;;:::o;24299:87::-;24345:7;24372:6;;;;;;;;;;;24365:13;;24299:87;:::o;12692:95::-;12739:13;12772:7;12765:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12692:95;:::o;14069:182::-;14138:4;14155:13;14171:12;:10;:12::i;:::-;14155:28;;14194:27;14204:5;14211:2;14215:5;14194:9;:27::i;:::-;14239:4;14232:11;;;14069:182;;;;:::o;26034:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;27706:131::-;24185:13;:11;:13::i;:::-;27824:5:::1;27795:17;:26;27813:7;27795:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;27706:131:::0;;:::o;14314:142::-;14394:7;14421:11;:18;14433:5;14421:18;;;;;;;;;;;;;;;:27;14440:7;14421:27;;;;;;;;;;;;;;;;14414:34;;14314:142;;;;:::o;25232:220::-;24185:13;:11;:13::i;:::-;25337:1:::1;25317:22;;:8;:22;;::::0;25313:93:::1;;25391:1;25363:31;;;;;;;;;;;:::i;:::-;;;;;;;;25313:93;25416:28;25435:8;25416:18;:28::i;:::-;25232:220:::0;:::o;26092:42::-;;;;:::o;25986:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;3833:98::-;3886:7;3913:10;3906:17;;3833:98;:::o;19602:130::-;19687:37;19696:5;19703:7;19712:5;19719:4;19687:8;:37::i;:::-;19602:130;;;:::o;24464:166::-;24535:12;:10;:12::i;:::-;24524:23;;:7;:5;:7::i;:::-;:23;;;24520:103;;24598:12;:10;:12::i;:::-;24571:40;;;;;;;;;;;:::i;:::-;;;;;;;;24520:103;24464:166::o;21318:487::-;21418:24;21445:25;21455:5;21462:7;21445:9;:25::i;:::-;21418:52;;21505:17;21485:16;:37;21481:317;;21562:5;21543:16;:24;21539:132;;;21622:7;21631:16;21649:5;21595:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;21539:132;21714:57;21723:5;21730:7;21758:5;21739:16;:24;21765:5;21714:8;:57::i;:::-;21481:317;21407:398;21318:487;;;:::o;16177:308::-;16277:1;16261:18;;:4;:18;;;16257:88;;16330:1;16303:30;;;;;;;;;;;:::i;:::-;;;;;;;;16257:88;16373:1;16359:16;;:2;:16;;;16355:88;;16428:1;16399:32;;;;;;;;;;;:::i;:::-;;;;;;;;16355:88;16453:24;16461:4;16467:2;16471:5;16453:7;:24::i;:::-;16177:308;;;:::o;18838:211::-;18928:1;18909:21;;:7;:21;;;18905:91;;18981:1;18954:30;;;;;;;;;;;:::i;:::-;;;;;;;;18905:91;19006:35;19014:7;19031:1;19035:5;19006:7;:35::i;:::-;18838:211;;:::o;25612:191::-;25686:16;25705:6;;;;;;;;;;;25686:25;;25731:8;25722:6;;:17;;;;;;;;;;;;;;;;;;25786:8;25755:40;;25776:8;25755:40;;;;;;;;;;;;25675:128;25612:191;:::o;20583:443::-;20713:1;20696:19;;:5;:19;;;20692:91;;20768:1;20739:32;;;;;;;;;;;:::i;:::-;;;;;;;;20692:91;20816:1;20797:21;;:7;:21;;;20793:92;;20870:1;20842:31;;;;;;;;;;;:::i;:::-;;;;;;;;20793:92;20925:5;20895:11;:18;20907:5;20895:18;;;;;;;;;;;;;;;:27;20914:7;20895:27;;;;;;;;;;;;;;;:35;;;;20945:9;20941:78;;;20992:7;20976:31;;20985:5;20976:31;;;21001:5;20976:31;;;;;;:::i;:::-;;;;;;;;20941:78;20583:443;;;;:::o;26940:410::-;27068:9;:15;27078:4;27068:15;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;27087:9;:13;27097:2;27087:13;;;;;;;;;;;;;;;;;;;;;;;;;27068:32;27064:97;;;27140:4;27146:2;27124:25;;;;;;;;;;;;:::i;:::-;;;;;;;;27064:97;27178:17;:21;27196:2;27178:21;;;;;;;;;;;;;;;;;;;;;;;;;27177:22;:60;;;;;27228:9;;27212:13;27222:2;27212:9;:13::i;:::-;27203:6;:22;;;;:::i;:::-;:34;27177:60;27173:124;;;27261:24;;;;;;;;;;;;;;27173:124;27309:31;27323:4;27329:2;27333:6;27309:13;:31::i;:::-;26940:410;;;:::o;16809:1135::-;16915:1;16899:18;;:4;:18;;;16895:552;;17053:5;17037:12;;:21;;;;;;;:::i;:::-;;;;;;;;16895:552;;;17091:19;17113:9;:15;17123:4;17113:15;;;;;;;;;;;;;;;;17091:37;;17161:5;17147:11;:19;17143:117;;;17219:4;17225:11;17238:5;17194:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;17143:117;17415:5;17401:11;:19;17383:9;:15;17393:4;17383:15;;;;;;;;;;;;;;;:37;;;;17076:371;16895:552;17477:1;17463:16;;:2;:16;;;17459:435;;17645:5;17629:12;;:21;;;;;;;;;;;17459:435;;;17862:5;17845:9;:13;17855:2;17845:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;17459:435;17926:2;17911:25;;17920:4;17911:25;;;17930:5;17911:25;;;;;;:::i;:::-;;;;;;;;16809:1135;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:468::-;3772:6;3780;3829:2;3817:9;3808:7;3804:23;3800:32;3797:119;;;3835:79;;:::i;:::-;3797:119;3955:1;3980:53;4025:7;4016:6;4005:9;4001:22;3980:53;:::i;:::-;3970:63;;3926:117;4082:2;4108:50;4150:7;4141:6;4130:9;4126:22;4108:50;:::i;:::-;4098:60;;4053:115;3707:468;;;;;:::o;4181:118::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4181:118;;:::o;4305:222::-;4398:4;4436:2;4425:9;4421:18;4413:26;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4305:222;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:329::-;5217:6;5266:2;5254:9;5245:7;5241:23;5237:32;5234:119;;;5272:79;;:::i;:::-;5234:119;5392:1;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5363:117;5158:329;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:117::-;6032:1;6029;6022:12;6046:180;6094:77;6091:1;6084:88;6191:4;6188:1;6181:15;6215:4;6212:1;6205:15;6232:281;6315:27;6337:4;6315:27;:::i;:::-;6307:6;6303:40;6445:6;6433:10;6430:22;6409:18;6397:10;6394:34;6391:62;6388:88;;;6456:18;;:::i;:::-;6388:88;6496:10;6492:2;6485:22;6275:238;6232:281;;:::o;6519:129::-;6553:6;6580:20;;:::i;:::-;6570:30;;6609:33;6637:4;6629:6;6609:33;:::i;:::-;6519:129;;;:::o;6654:311::-;6731:4;6821:18;6813:6;6810:30;6807:56;;;6843:18;;:::i;:::-;6807:56;6893:4;6885:6;6881:17;6873:25;;6953:4;6947;6943:15;6935:23;;6654:311;;;:::o;6971:117::-;7080:1;7077;7070:12;7111:710;7207:5;7232:81;7248:64;7305:6;7248:64;:::i;:::-;7232:81;:::i;:::-;7223:90;;7333:5;7362:6;7355:5;7348:21;7396:4;7389:5;7385:16;7378:23;;7449:4;7441:6;7437:17;7429:6;7425:30;7478:3;7470:6;7467:15;7464:122;;;7497:79;;:::i;:::-;7464:122;7612:6;7595:220;7629:6;7624:3;7621:15;7595:220;;;7704:3;7733:37;7766:3;7754:10;7733:37;:::i;:::-;7728:3;7721:50;7800:4;7795:3;7791:14;7784:21;;7671:144;7655:4;7650:3;7646:14;7639:21;;7595:220;;;7599:21;7213:608;;7111:710;;;;;:::o;7844:370::-;7915:5;7964:3;7957:4;7949:6;7945:17;7941:27;7931:122;;7972:79;;:::i;:::-;7931:122;8089:6;8076:20;8114:94;8204:3;8196:6;8189:4;8181:6;8177:17;8114:94;:::i;:::-;8105:103;;7921:293;7844:370;;;;:::o;8220:539::-;8304:6;8353:2;8341:9;8332:7;8328:23;8324:32;8321:119;;;8359:79;;:::i;:::-;8321:119;8507:1;8496:9;8492:17;8479:31;8537:18;8529:6;8526:30;8523:117;;;8559:79;;:::i;:::-;8523:117;8664:78;8734:7;8725:6;8714:9;8710:22;8664:78;:::i;:::-;8654:88;;8450:302;8220:539;;;;:::o;8765:329::-;8824:6;8873:2;8861:9;8852:7;8848:23;8844:32;8841:119;;;8879:79;;:::i;:::-;8841:119;8999:1;9024:53;9069:7;9060:6;9049:9;9045:22;9024:53;:::i;:::-;9014:63;;8970:117;8765:329;;;;:::o;9100:118::-;9187:24;9205:5;9187:24;:::i;:::-;9182:3;9175:37;9100:118;;:::o;9224:222::-;9317:4;9355:2;9344:9;9340:18;9332:26;;9368:71;9436:1;9425:9;9421:17;9412:6;9368:71;:::i;:::-;9224:222;;;;:::o;9452:474::-;9520:6;9528;9577:2;9565:9;9556:7;9552:23;9548:32;9545:119;;;9583:79;;:::i;:::-;9545:119;9703:1;9728:53;9773:7;9764:6;9753:9;9749:22;9728:53;:::i;:::-;9718:63;;9674:117;9830:2;9856:53;9901:7;9892:6;9881:9;9877:22;9856:53;:::i;:::-;9846:63;;9801:118;9452:474;;;;;:::o;9932:180::-;9980:77;9977:1;9970:88;10077:4;10074:1;10067:15;10101:4;10098:1;10091:15;10118:320;10162:6;10199:1;10193:4;10189:12;10179:22;;10246:1;10240:4;10236:12;10267:18;10257:81;;10323:4;10315:6;10311:17;10301:27;;10257:81;10385:2;10377:6;10374:14;10354:18;10351:38;10348:84;;10404:18;;:::i;:::-;10348:84;10169:269;10118:320;;;:::o;10444:180::-;10492:77;10489:1;10482:88;10589:4;10586:1;10579:15;10613:4;10610:1;10603:15;10630:410;10670:7;10693:20;10711:1;10693:20;:::i;:::-;10688:25;;10727:20;10745:1;10727:20;:::i;:::-;10722:25;;10782:1;10779;10775:9;10804:30;10822:11;10804:30;:::i;:::-;10793:41;;10983:1;10974:7;10970:15;10967:1;10964:22;10944:1;10937:9;10917:83;10894:139;;11013:18;;:::i;:::-;10894:139;10678:362;10630:410;;;;:::o;11046:180::-;11094:77;11091:1;11084:88;11191:4;11188:1;11181:15;11215:4;11212:1;11205:15;11232:185;11272:1;11289:20;11307:1;11289:20;:::i;:::-;11284:25;;11323:20;11341:1;11323:20;:::i;:::-;11318:25;;11362:1;11352:35;;11367:18;;:::i;:::-;11352:35;11409:1;11406;11402:9;11397:14;;11232:185;;;;:::o;11423:180::-;11471:77;11468:1;11461:88;11568:4;11565:1;11558:15;11592:4;11589:1;11582:15;11609:233;11648:3;11671:24;11689:5;11671:24;:::i;:::-;11662:33;;11717:66;11710:5;11707:77;11704:103;;11787:18;;:::i;:::-;11704:103;11834:1;11827:5;11823:13;11816:20;;11609:233;;;:::o;11848:442::-;11997:4;12035:2;12024:9;12020:18;12012:26;;12048:71;12116:1;12105:9;12101:17;12092:6;12048:71;:::i;:::-;12129:72;12197:2;12186:9;12182:18;12173:6;12129:72;:::i;:::-;12211;12279:2;12268:9;12264:18;12255:6;12211:72;:::i;:::-;11848:442;;;;;;:::o;12296:332::-;12417:4;12455:2;12444:9;12440:18;12432:26;;12468:71;12536:1;12525:9;12521:17;12512:6;12468:71;:::i;:::-;12549:72;12617:2;12606:9;12602:18;12593:6;12549:72;:::i;:::-;12296:332;;;;;:::o;12634:191::-;12674:3;12693:20;12711:1;12693:20;:::i;:::-;12688:25;;12727:20;12745:1;12727:20;:::i;:::-;12722:25;;12770:1;12767;12763:9;12756:16;;12791:3;12788:1;12785:10;12782:36;;;12798:18;;:::i;:::-;12782:36;12634:191;;;;:::o
Swarm Source
ipfs://14da60730c827a458f84b0b3bffeefda9b8505cdcd524bc5a61eb8abff0793f3
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.