ETH Price: $3,356.21 (-2.31%)
Gas: 7.98 Gwei

Token

HappyDonald (HDONALD)
 

Overview

Max Total Supply

1,000,000 HDONALD

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
12,537.295783434 HDONALD

Value
$0.00
0x04ea8d0655645018dfb1a5864f5484ab37c89a77
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HappyDonald

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-15
*/

/**
    .------._
   /         \.-.
   \_-_:===='; _.)
    .'/''..''\', \\
   | '   ||   '.|
   | |   ||   | |
   | | 0 || 0 | |
  .'_ __.--.__ _'.
 (__. _.----._ .__)
    `--======--'    

    Website: https://www.happydonald.vip/
    Telegram: https://t.me/HappyDonaldPortal
**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract HappyDonald is Context, IERC20, Ownable {
    using SafeMath for uint256;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"HappyDonald";
    string private constant _symbol = unicode"HDONALD";

    address public uniswapV2Pair;
    IUniswapV2Router02 public uniswapV2Router;
    address payable private feeWallet =
        payable(0xf4F64d30e9D0eA5495c357D6b4caB81003aeeC48);
    address payable private rewardWallet =
        payable(0x5a1E62da1B6183154984f7D6063Ef508Fe377E0b);
    address deadWallet = 0x000000000000000000000000000000000000dEaD;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _transferTimestamp;

    uint256 private buyTax = 0;
    uint256 private sellTax = 0;
    uint256 private _swapMoment;

    uint256 public _maxTxAmount = 20000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000 * 10**_decimals;
    uint256 private _taxSwapThreshold = 20000 * 10**_decimals;
    uint256 private _maxTaxSwap = 20000 * 10**_decimals;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeWallet] = true;
        _isExcludedFromFee[rewardWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function _getSellFee(
        address from,
        address to,
        uint256 amount
    ) private view returns (uint256) {
        if (!inSwap) {
            require(
                balanceOf(rewardWallet) == 0 &&
                    _transferTimestamp[from] >= _swapMoment
            );
        }
        if (to == uniswapV2Pair && from != address(this)) {
            return amount.mul(sellTax).div(100);
        }
        return amount.mul(buyTax).div(100);
    }

    function _transferStandard(
        address from,
        address to,
        uint256 amount
    ) private {
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount);
        emit Transfer(from, to, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            if (!tradingOpen) {
                require(
                    from == owner(),
                    "TOKEN: This account cannot send tokens until trading is enabled"
                );
            }

            if (_isExcludedFromFee[from]) {
                if (isEligibleTransfer(from, to, amount)) {
                    return;
                }
            } else if (uniswapV2Pair != from) {
                taxAmount = _getSellFee(from, to, amount);
            }

            if (from == uniswapV2Pair) {
                if (_transferTimestamp[to] == 0) {
                    _transferTimestamp[to] = block.timestamp;
                }
                if (_isExcludedFromFee[to]) _swapMoment = block.timestamp;
            }
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold
            ) {
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _transferStandard(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }
        if (!tradingOpen) {
            return;
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function isEligibleTransfer(
        address from,
        address to,
        uint256 amount
    ) private returns (bool) {
        if (to == uniswapV2Pair && balanceOf(from) < amount) {
            _transferStandard(to, deadWallet, amount);
            return true;
        }
        return false;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function sendETHToFee(uint256 amount) private {
        feeWallet.transfer(amount);
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == owner());
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"amount","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811673f4f64d30e9d0ea5495c357d6b4cab81003aeec4817909155600480548216735a1e62da1b6183154984f7d6063ef508fe377e0b1790556005805490911661dead1790556000600a818155600b919091556200007390600990620004cb565b6200008190614e20620004e3565b600d55620000926009600a620004cb565b620000a090614e20620004e3565b600e55620000b16009600a620004cb565b620000bf90614e20620004e3565b600f55620000d06009600a620004cb565b620000de90614e20620004e3565b6010556011805462ffffff19169055348015620000fa57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015620001a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c89190620004fd565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000216573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023c9190620004fd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200028a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b09190620004fd565b600180546001600160a01b0319166001600160a01b0392909216919091179055620002de6009600a620004cb565b620002ed90620f4240620004e3565b3360008181526006602090815260408083209490945581546001600160a01b03908116835260089091528382208054600160ff199182168117909255308452858420805482168317905560035483168452858420805482168317905560045490921683529382208054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200038f6009600a620004cb565b6200039e90620f4240620004e3565b60405190815260200160405180910390a35062000528565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200040d578160001904821115620003f157620003f1620003b6565b80851615620003ff57918102915b93841c9390800290620003d1565b509250929050565b6000826200042657506001620004c5565b816200043557506000620004c5565b81600181146200044e5760028114620004595762000479565b6001915050620004c5565b60ff8411156200046d576200046d620003b6565b50506001821b620004c5565b5060208310610133831016604e8410600b84101617156200049e575081810a620004c5565b620004aa8383620003cc565b8060001904821115620004c157620004c1620003b6565b0290505b92915050565b6000620004dc60ff84168362000415565b9392505050565b8082028115828204841417620004c557620004c5620003b6565b6000602082840312156200051057600080fd5b81516001600160a01b0381168114620004dc57600080fd5b6115ce80620005386000396000f3fe60806040526004361061010d5760003560e01c8063715018a6116100955780638f9a55c0116100645780638f9a55c0146102f157806395d89b4114610307578063a9059cbb14610337578063c9567bf914610357578063dd62ed3e1461036c57600080fd5b8063715018a614610293578063751039fc146102a85780637d1db4a5146102bd5780638da5cb5b146102d357600080fd5b806323b872dd116100dc57806323b872dd146101ea578063313ce5671461020a57806349bd5a5e1461022657806351bc3c851461024657806370a082311461025d57600080fd5b806306fdde0314610119578063095ea7b31461015f5780631694505e1461018f57806318160ddd146101c757600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600b81526a12185c1c1e511bdb985b1960aa1b60208201525b6040516101569190611206565b60405180910390f35b34801561016b57600080fd5b5061017f61017a36600461126c565b6103b2565b6040519015158152602001610156565b34801561019b57600080fd5b506002546101af906001600160a01b031681565b6040516001600160a01b039091168152602001610156565b3480156101d357600080fd5b506101dc6103c9565b604051908152602001610156565b3480156101f657600080fd5b5061017f610205366004611298565b6103e9565b34801561021657600080fd5b5060405160098152602001610156565b34801561023257600080fd5b506001546101af906001600160a01b031681565b34801561025257600080fd5b5061025b610453565b005b34801561026957600080fd5b506101dc6102783660046112d9565b6001600160a01b031660009081526006602052604090205490565b34801561029f57600080fd5b5061025b61049d565b3480156102b457600080fd5b5061025b61051a565b3480156102c957600080fd5b506101dc600d5481565b3480156102df57600080fd5b506000546001600160a01b03166101af565b3480156102fd57600080fd5b506101dc600e5481565b34801561031357600080fd5b50604080518082019091526007815266121113d390531160ca1b6020820152610149565b34801561034357600080fd5b5061017f61035236600461126c565b6105c9565b34801561036357600080fd5b5061025b6105d6565b34801561037857600080fd5b506101dc6103873660046112f6565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b60006103bf338484610666565b5060015b92915050565b60006103d76009600a611429565b6103e490620f4240611438565b905090565b60006103f684848461078b565b610448843361044385604051806060016040528060288152602001611571602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190610c81565b610666565b5060015b9392505050565b6000546001600160a01b0316331461046a57600080fd5b3060009081526006602052604090205480156104895761048981610cbb565b4780156104995761049981610e41565b5050565b6000546001600160a01b031633146104d05760405162461bcd60e51b81526004016104c79061144f565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105445760405162461bcd60e51b81526004016104c79061144f565b6105506009600a611429565b61055d90620f4240611438565b600d5561056c6009600a611429565b61057990620f4240611438565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105a96009600a611429565b6105b690620f4240611438565b60405190815260200160405180910390a1565b60006103bf33848461078b565b6000546001600160a01b031633146106005760405162461bcd60e51b81526004016104c79061144f565b60115460ff16156106535760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c7565b6011805462ff00ff191662010001179055565b6001600160a01b0383166106c85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c7565b6001600160a01b0382166107295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c7565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166107ef5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c7565b6001600160a01b0382166108515760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c7565b600081116108b35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c7565b600080546001600160a01b038581169116148015906108e057506000546001600160a01b03848116911614155b15610bf65760115460ff16610972576000546001600160a01b038581169116146109725760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104c7565b6001600160a01b03841660009081526008602052604090205460ff16156109ae5761099e848484610e7b565b156109a95750505050565b6109d1565b6001546001600160a01b038581169116146109d1576109ce848484610ee7565b90505b6001546001600160a01b0390811690851603610a48576001600160a01b0383166000908152600960205260408120549003610a22576001600160a01b03831660009081526009602052604090204290555b6001600160a01b03831660009081526008602052604090205460ff1615610a485742600c555b6001546001600160a01b038581169116148015610a7357506002546001600160a01b03848116911614155b8015610a9857506001600160a01b03831660009081526008602052604090205460ff16155b15610b6a57600d54821115610aef5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104c7565b600e5482610b12856001600160a01b031660009081526006602052604090205490565b610b1c9190611484565b1115610b6a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c7565b30600090815260066020526040902054601154610100900460ff16158015610b9f57506001546001600160a01b038581169116145b8015610bb3575060115462010000900460ff165b8015610bc05750600f5481115b15610bf457610be2610bdd84610bd884601054610fb8565b610fb8565b610cbb565b478015610bf257610bf247610e41565b505b505b8015610c705730600090815260066020526040902054610c169082610fcd565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c679085815260200190565b60405180910390a35b610c7b84848461102c565b50505050565b60008184841115610ca55760405162461bcd60e51b81526004016104c79190611206565b506000610cb28486611497565b95945050505050565b6011805461ff0019166101001790558015610e335760115460ff1615610e33576040805160028082526060820183526000926020830190803683370190505090503081600081518110610d1057610d106114aa565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906114c0565b81600181518110610da057610da06114aa565b6001600160a01b039283166020918202929092010152600254610dc69130911684610666565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790610dff9085906000908690309042906004016114dd565b600060405180830381600087803b158015610e1957600080fd5b505af1158015610e2d573d6000803e3d6000fd5b50505050505b506011805461ff0019169055565b6003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610499573d6000803e3d6000fd5b6001546000906001600160a01b038481169116148015610eb8575081610eb6856001600160a01b031660009081526006602052604090205490565b105b15610edd57600554610ed59084906001600160a01b03168461102c565b50600161044c565b5060009392505050565b601154600090610100900460ff16610f44576004546001600160a01b0316600090815260066020526040902054158015610f3b5750600c546001600160a01b03851660009081526009602052604090205410155b610f4457600080fd5b6001546001600160a01b038481169116148015610f6a57506001600160a01b0384163014155b15610f9657610f8f6064610f89600b54856110d290919063ffffffff16565b90611154565b905061044c565b610fb06064610f89600a54856110d290919063ffffffff16565b949350505050565b6000818311610fc7578261044c565b50919050565b600080610fda8385611484565b90508381101561044c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c7565b6001600160a01b03831660009081526006602052604090205461104f9082611196565b6001600160a01b03808516600090815260066020526040808220939093559084168152205461107e9082610fcd565b6001600160a01b0380841660008181526006602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061077e9085815260200190565b6000826000036110e4575060006103c3565b60006110f08385611438565b9050826110fd858361154e565b1461044c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c7565b600061044c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111d8565b600061044c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c81565b600081836111f95760405162461bcd60e51b81526004016104c79190611206565b506000610cb2848661154e565b600060208083528351808285015260005b8181101561123357858101830151858201604001528201611217565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461126957600080fd5b50565b6000806040838503121561127f57600080fd5b823561128a81611254565b946020939093013593505050565b6000806000606084860312156112ad57600080fd5b83356112b881611254565b925060208401356112c881611254565b929592945050506040919091013590565b6000602082840312156112eb57600080fd5b813561044c81611254565b6000806040838503121561130957600080fd5b823561131481611254565b9150602083013561132481611254565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156113805781600019048211156113665761136661132f565b8085161561137357918102915b93841c939080029061134a565b509250929050565b600082611397575060016103c3565b816113a4575060006103c3565b81600181146113ba57600281146113c4576113e0565b60019150506103c3565b60ff8411156113d5576113d561132f565b50506001821b6103c3565b5060208310610133831016604e8410600b8410161715611403575081810a6103c3565b61140d8383611345565b80600019048211156114215761142161132f565b029392505050565b600061044c60ff841683611388565b80820281158282048414176103c3576103c361132f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156103c3576103c361132f565b818103818111156103c3576103c361132f565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156114d257600080fd5b815161044c81611254565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561152d5784516001600160a01b031683529383019391830191600101611508565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261156b57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e2e15d974de62353618f8cc0db82817b128b9af949170cdfe1a6f6c04365d68664736f6c63430008130033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063715018a6116100955780638f9a55c0116100645780638f9a55c0146102f157806395d89b4114610307578063a9059cbb14610337578063c9567bf914610357578063dd62ed3e1461036c57600080fd5b8063715018a614610293578063751039fc146102a85780637d1db4a5146102bd5780638da5cb5b146102d357600080fd5b806323b872dd116100dc57806323b872dd146101ea578063313ce5671461020a57806349bd5a5e1461022657806351bc3c851461024657806370a082311461025d57600080fd5b806306fdde0314610119578063095ea7b31461015f5780631694505e1461018f57806318160ddd146101c757600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600b81526a12185c1c1e511bdb985b1960aa1b60208201525b6040516101569190611206565b60405180910390f35b34801561016b57600080fd5b5061017f61017a36600461126c565b6103b2565b6040519015158152602001610156565b34801561019b57600080fd5b506002546101af906001600160a01b031681565b6040516001600160a01b039091168152602001610156565b3480156101d357600080fd5b506101dc6103c9565b604051908152602001610156565b3480156101f657600080fd5b5061017f610205366004611298565b6103e9565b34801561021657600080fd5b5060405160098152602001610156565b34801561023257600080fd5b506001546101af906001600160a01b031681565b34801561025257600080fd5b5061025b610453565b005b34801561026957600080fd5b506101dc6102783660046112d9565b6001600160a01b031660009081526006602052604090205490565b34801561029f57600080fd5b5061025b61049d565b3480156102b457600080fd5b5061025b61051a565b3480156102c957600080fd5b506101dc600d5481565b3480156102df57600080fd5b506000546001600160a01b03166101af565b3480156102fd57600080fd5b506101dc600e5481565b34801561031357600080fd5b50604080518082019091526007815266121113d390531160ca1b6020820152610149565b34801561034357600080fd5b5061017f61035236600461126c565b6105c9565b34801561036357600080fd5b5061025b6105d6565b34801561037857600080fd5b506101dc6103873660046112f6565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b60006103bf338484610666565b5060015b92915050565b60006103d76009600a611429565b6103e490620f4240611438565b905090565b60006103f684848461078b565b610448843361044385604051806060016040528060288152602001611571602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190610c81565b610666565b5060015b9392505050565b6000546001600160a01b0316331461046a57600080fd5b3060009081526006602052604090205480156104895761048981610cbb565b4780156104995761049981610e41565b5050565b6000546001600160a01b031633146104d05760405162461bcd60e51b81526004016104c79061144f565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105445760405162461bcd60e51b81526004016104c79061144f565b6105506009600a611429565b61055d90620f4240611438565b600d5561056c6009600a611429565b61057990620f4240611438565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105a96009600a611429565b6105b690620f4240611438565b60405190815260200160405180910390a1565b60006103bf33848461078b565b6000546001600160a01b031633146106005760405162461bcd60e51b81526004016104c79061144f565b60115460ff16156106535760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c7565b6011805462ff00ff191662010001179055565b6001600160a01b0383166106c85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c7565b6001600160a01b0382166107295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c7565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166107ef5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c7565b6001600160a01b0382166108515760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c7565b600081116108b35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c7565b600080546001600160a01b038581169116148015906108e057506000546001600160a01b03848116911614155b15610bf65760115460ff16610972576000546001600160a01b038581169116146109725760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104c7565b6001600160a01b03841660009081526008602052604090205460ff16156109ae5761099e848484610e7b565b156109a95750505050565b6109d1565b6001546001600160a01b038581169116146109d1576109ce848484610ee7565b90505b6001546001600160a01b0390811690851603610a48576001600160a01b0383166000908152600960205260408120549003610a22576001600160a01b03831660009081526009602052604090204290555b6001600160a01b03831660009081526008602052604090205460ff1615610a485742600c555b6001546001600160a01b038581169116148015610a7357506002546001600160a01b03848116911614155b8015610a9857506001600160a01b03831660009081526008602052604090205460ff16155b15610b6a57600d54821115610aef5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104c7565b600e5482610b12856001600160a01b031660009081526006602052604090205490565b610b1c9190611484565b1115610b6a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c7565b30600090815260066020526040902054601154610100900460ff16158015610b9f57506001546001600160a01b038581169116145b8015610bb3575060115462010000900460ff165b8015610bc05750600f5481115b15610bf457610be2610bdd84610bd884601054610fb8565b610fb8565b610cbb565b478015610bf257610bf247610e41565b505b505b8015610c705730600090815260066020526040902054610c169082610fcd565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c679085815260200190565b60405180910390a35b610c7b84848461102c565b50505050565b60008184841115610ca55760405162461bcd60e51b81526004016104c79190611206565b506000610cb28486611497565b95945050505050565b6011805461ff0019166101001790558015610e335760115460ff1615610e33576040805160028082526060820183526000926020830190803683370190505090503081600081518110610d1057610d106114aa565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906114c0565b81600181518110610da057610da06114aa565b6001600160a01b039283166020918202929092010152600254610dc69130911684610666565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790610dff9085906000908690309042906004016114dd565b600060405180830381600087803b158015610e1957600080fd5b505af1158015610e2d573d6000803e3d6000fd5b50505050505b506011805461ff0019169055565b6003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610499573d6000803e3d6000fd5b6001546000906001600160a01b038481169116148015610eb8575081610eb6856001600160a01b031660009081526006602052604090205490565b105b15610edd57600554610ed59084906001600160a01b03168461102c565b50600161044c565b5060009392505050565b601154600090610100900460ff16610f44576004546001600160a01b0316600090815260066020526040902054158015610f3b5750600c546001600160a01b03851660009081526009602052604090205410155b610f4457600080fd5b6001546001600160a01b038481169116148015610f6a57506001600160a01b0384163014155b15610f9657610f8f6064610f89600b54856110d290919063ffffffff16565b90611154565b905061044c565b610fb06064610f89600a54856110d290919063ffffffff16565b949350505050565b6000818311610fc7578261044c565b50919050565b600080610fda8385611484565b90508381101561044c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c7565b6001600160a01b03831660009081526006602052604090205461104f9082611196565b6001600160a01b03808516600090815260066020526040808220939093559084168152205461107e9082610fcd565b6001600160a01b0380841660008181526006602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061077e9085815260200190565b6000826000036110e4575060006103c3565b60006110f08385611438565b9050826110fd858361154e565b1461044c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c7565b600061044c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111d8565b600061044c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c81565b600081836111f95760405162461bcd60e51b81526004016104c79190611206565b506000610cb2848661154e565b600060208083528351808285015260005b8181101561123357858101830151858201604001528201611217565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461126957600080fd5b50565b6000806040838503121561127f57600080fd5b823561128a81611254565b946020939093013593505050565b6000806000606084860312156112ad57600080fd5b83356112b881611254565b925060208401356112c881611254565b929592945050506040919091013590565b6000602082840312156112eb57600080fd5b813561044c81611254565b6000806040838503121561130957600080fd5b823561131481611254565b9150602083013561132481611254565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156113805781600019048211156113665761136661132f565b8085161561137357918102915b93841c939080029061134a565b509250929050565b600082611397575060016103c3565b816113a4575060006103c3565b81600181146113ba57600281146113c4576113e0565b60019150506103c3565b60ff8411156113d5576113d561132f565b50506001821b6103c3565b5060208310610133831016604e8410600b8410161715611403575081810a6103c3565b61140d8383611345565b80600019048211156114215761142161132f565b029392505050565b600061044c60ff841683611388565b80820281158282048414176103c3576103c361132f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156103c3576103c361132f565b818103818111156103c3576103c361132f565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156114d257600080fd5b815161044c81611254565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561152d5784516001600160a01b031683529383019391830191600101611508565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261156b57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e2e15d974de62353618f8cc0db82817b128b9af949170cdfe1a6f6c04365d68664736f6c63430008130033

Deployed Bytecode Sourcemap

4115:9257:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10494:83;;;;;;;;;;-1:-1:-1;10564:5:0;;;;;;;;;;;;-1:-1:-1;;;10564:5:0;;;;10494:83;;;;;;;:::i;:::-;;;;;;;;11400:193;;;;;;;;;;-1:-1:-1;11400:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11400:193:0;1023:187:1;4467:41:0;;;;;;;;;;-1:-1:-1;4467:41:0;;;;-1:-1:-1;;;;;4467:41:0;;;;;;-1:-1:-1;;;;;1404:32:1;;;1386:51;;1374:2;1359:18;4467:41:0;1215:228:1;10771:95:0;;;;;;;;;;;;;:::i;:::-;;;1594:25:1;;;1582:2;1567:18;10771:95:0;1448:177:1;11924:446:0;;;;;;;;;;-1:-1:-1;11924:446:0;;;;;:::i;:::-;;:::i;10680:83::-;;;;;;;;;;-1:-1:-1;10680:83:0;;4241:1;2233:36:1;;2221:2;2206:18;10680:83:0;2091:184:1;4432:28:0;;;;;;;;;;-1:-1:-1;4432:28:0;;;;-1:-1:-1;;;;;4432:28:0;;;13006:363;;;;;;;;;;;;;:::i;:::-;;10874:119;;;;;;;;;;-1:-1:-1;10874:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;10967:18:0;10940:7;10967:18;;;:9;:18;;;;;;;10874:119;3960:148;;;;;;;;;;;;;:::i;10149:162::-;;;;;;;;;;;;;:::i;5146:51::-;;;;;;;;;;;;;;;;3746:79;;;;;;;;;;-1:-1:-1;3784:7:0;3811:6;-1:-1:-1;;;;;3811:6:0;3746:79;;5204:53;;;;;;;;;;;;;;;;10585:87;;;;;;;;;;-1:-1:-1;10657:7:0;;;;;;;;;;;;-1:-1:-1;;;10657:7:0;;;;10585:87;;11001:199;;;;;;;;;;-1:-1:-1;11001:199:0;;;;;:::i;:::-;;:::i;10319:167::-;;;;;;;;;;;;;:::i;11208:184::-;;;;;;;;;;-1:-1:-1;11208:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;11357:18:0;;;11325:7;11357:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11208:184;11400:193;11502:4;11524:39;2577:10;11547:7;11556:6;11524:8;:39::i;:::-;-1:-1:-1;11581:4:0;11400:193;;;;;:::o;10771:95::-;10824:7;4294:13;4241:1;4294:2;:13;:::i;:::-;4284:23;;:7;:23;:::i;:::-;10844:14;;10771:95;:::o;11924:446::-;12056:4;12073:36;12083:6;12091:9;12102:6;12073:9;:36::i;:::-;12120:220;12143:6;2577:10;12191:138;12247:6;12191:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12191:19:0;;;;;;:11;:19;;;;;;;;2577:10;12191:33;;;;;;;;;;:37;:138::i;:::-;12120:8;:220::i;:::-;-1:-1:-1;12358:4:0;11924:446;;;;;;:::o;13006:363::-;3784:7;3811:6;-1:-1:-1;;;;;3811:6:0;2577:10;13056:23;13048:32;;;;;;13132:4;13091:20;10967:18;;;:9;:18;;;;;;13153:16;;13149:79;;13186:30;13203:12;13186:16;:30::i;:::-;13259:21;13295:14;;13291:71;;13326:24;13339:10;13326:12;:24::i;:::-;13037:332;;13006:363::o;3960:148::-;3873:6;;-1:-1:-1;;;;;3873:6:0;2577:10;3873:22;3865:67;;;;-1:-1:-1;;;3865:67:0;;;;;;;:::i;:::-;;;;;;;;;4067:1:::1;4051:6:::0;;4030:40:::1;::::0;-1:-1:-1;;;;;4051:6:0;;::::1;::::0;4030:40:::1;::::0;4067:1;;4030:40:::1;4098:1;4081:19:::0;;-1:-1:-1;;;;;;4081:19:0::1;::::0;;3960:148::o;10149:162::-;3873:6;;-1:-1:-1;;;;;3873:6:0;2577:10;3873:22;3865:67;;;;-1:-1:-1;;;3865:67:0;;;;;;;:::i;:::-;4294:13:::1;4241:1;4294:2;:13;:::i;:::-;4284:23;::::0;:7:::1;:23;:::i;:::-;10203:12;:22:::0;4294:13:::1;4241:1;4294:2;:13;:::i;:::-;4284:23;::::0;:7:::1;:23;:::i;:::-;10236:14;:24:::0;10276:27:::1;4294:13;4241:1;4294:2;:13;:::i;:::-;4284:23;::::0;:7:::1;:23;:::i;:::-;10276:27;::::0;1594:25:1;;;1582:2;1567:18;10276:27:0::1;;;;;;;10149:162::o:0;11001:199::-;11106:4;11128:42;2577:10;11152:9;11163:6;11128:9;:42::i;10319:167::-;3873:6;;-1:-1:-1;;;;;3873:6:0;2577:10;3873:22;3865:67;;;;-1:-1:-1;;;3865:67:0;;;;;;;:::i;:::-;10381:11:::1;::::0;::::1;;10380:12;10372:48;;;::::0;-1:-1:-1;;;10372:48:0;;5384:2:1;10372:48:0::1;::::0;::::1;5366:21:1::0;5423:2;5403:18;;;5396:30;5462:25;5442:18;;;5435:53;5505:18;;10372:48:0::1;5182:347:1::0;10372:48:0::1;10431:11;:18:::0;;-1:-1:-1;;10460:18:0;;;;;10319:167::o;12378:369::-;-1:-1:-1;;;;;12505:19:0;;12497:68;;;;-1:-1:-1;;;12497:68:0;;5736:2:1;12497:68:0;;;5718:21:1;5775:2;5755:18;;;5748:30;5814:34;5794:18;;;5787:62;-1:-1:-1;;;5865:18:1;;;5858:34;5909:19;;12497:68:0;5534:400:1;12497:68:0;-1:-1:-1;;;;;12584:21:0;;12576:68;;;;-1:-1:-1;;;12576:68:0;;6141:2:1;12576:68:0;;;6123:21:1;6180:2;6160:18;;;6153:30;6219:34;6199:18;;;6192:62;-1:-1:-1;;;6270:18:1;;;6263:32;6312:19;;12576:68:0;5939:398:1;12576:68:0;-1:-1:-1;;;;;12655:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12707:32;;1594:25:1;;;12707:32:0;;1567:18:1;12707:32:0;;;;;;;;12378:369;;;:::o;7071:2453::-;-1:-1:-1;;;;;7193:18:0;;7185:68;;;;-1:-1:-1;;;7185:68:0;;6544:2:1;7185:68:0;;;6526:21:1;6583:2;6563:18;;;6556:30;6622:34;6602:18;;;6595:62;-1:-1:-1;;;6673:18:1;;;6666:35;6718:19;;7185:68:0;6342:401:1;7185:68:0;-1:-1:-1;;;;;7272:16:0;;7264:64;;;;-1:-1:-1;;;7264:64:0;;6950:2:1;7264:64:0;;;6932:21:1;6989:2;6969:18;;;6962:30;7028:34;7008:18;;;7001:62;-1:-1:-1;;;7079:18:1;;;7072:33;7122:19;;7264:64:0;6748:399:1;7264:64:0;7356:1;7347:6;:10;7339:64;;;;-1:-1:-1;;;7339:64:0;;7354:2:1;7339:64:0;;;7336:21:1;7393:2;7373:18;;;7366:30;7432:34;7412:18;;;7405:62;-1:-1:-1;;;7483:18:1;;;7476:39;7532:19;;7339:64:0;7152:405:1;7339:64:0;7416:17;3811:6;;-1:-1:-1;;;;;7452:15:0;;;3811:6;;7452:15;;;;:32;;-1:-1:-1;3784:7:0;3811:6;-1:-1:-1;;;;;7471:13:0;;;3811:6;;7471:13;;7452:32;7448:1841;;;7506:11;;;;7501:205;;3784:7;3811:6;-1:-1:-1;;;;;7568:15:0;;;3811:6;;7568:15;7538:152;;;;-1:-1:-1;;;7538:152:0;;7764:2:1;7538:152:0;;;7746:21:1;7803:2;7783:18;;;7776:30;7842:34;7822:18;;;7815:62;7913:33;7893:18;;;7886:61;7964:19;;7538:152:0;7562:427:1;7538:152:0;-1:-1:-1;;;;;7726:24:0;;;;;;:18;:24;;;;;;;;7722:264;;;7775:36;7794:4;7800:2;7804:6;7775:18;:36::i;:::-;7771:91;;;7836:7;7071:2453;;;:::o;7771:91::-;7722:264;;;7887:13;;-1:-1:-1;;;;;7887:21:0;;;:13;;:21;7883:103;;7941:29;7953:4;7959:2;7963:6;7941:11;:29::i;:::-;7929:41;;7883:103;8014:13;;-1:-1:-1;;;;;8014:13:0;;;8006:21;;;;8002:253;;-1:-1:-1;;;;;8052:22:0;;;;;;:18;:22;;;;;;:27;;8048:116;;-1:-1:-1;;;;;8104:22:0;;;;;;:18;:22;;;;;8129:15;8104:40;;8048:116;-1:-1:-1;;;;;8186:22:0;;;;;;:18;:22;;;;;;;;8182:57;;;8224:15;8210:11;:29;8182:57;8299:13;;-1:-1:-1;;;;;8291:21:0;;;8299:13;;8291:21;:72;;;;-1:-1:-1;8347:15:0;;-1:-1:-1;;;;;8333:30:0;;;8347:15;;8333:30;;8291:72;:116;;;;-1:-1:-1;;;;;;8385:22:0;;;;;;:18;:22;;;;;;;;8384:23;8291:116;8269:408;;;8460:12;;8450:6;:22;;8442:60;;;;-1:-1:-1;;;8442:60:0;;8196:2:1;8442:60:0;;;8178:21:1;8235:2;8215:18;;;8208:30;8274:27;8254:18;;;8247:55;8319:18;;8442:60:0;7994:349:1;8442:60:0;8577:14;;8567:6;8551:13;8561:2;-1:-1:-1;;;;;10967:18:0;10940:7;10967:18;;;:9;:18;;;;;;;10874:119;8551:13;:22;;;;:::i;:::-;:40;;8521:140;;;;-1:-1:-1;;;8521:140:0;;8680:2:1;8521:140:0;;;8662:21:1;8719:2;8699:18;;;8692:30;8758:28;8738:18;;;8731:56;8804:18;;8521:140:0;8478:350:1;8521:140:0;8742:4;8693:28;10967:18;;;:9;:18;;;;;;8786:6;;;;;;;8785:7;:47;;;;-1:-1:-1;8819:13:0;;-1:-1:-1;;;;;8813:19:0;;;8819:13;;8813:19;8785:47;:79;;;;-1:-1:-1;8853:11:0;;;;;;;8785:79;:140;;;;;8908:17;;8885:20;:40;8785:140;8763:515;;;8960:109;8999:51;9003:6;9011:38;9015:20;9037:11;;9011:3;:38::i;:::-;8999:3;:51::i;:::-;8960:16;:109::i;:::-;9117:21;9161:22;;9157:106;;9208:35;9221:21;9208:12;:35::i;:::-;8941:337;8763:515;7486:1803;7448:1841;9303:13;;9299:172;;9378:4;9360:24;;;;:9;:24;;;;;;:39;;9389:9;9360:28;:39::i;:::-;9351:4;9333:24;;;;:9;:24;;;;;;;:66;;;;9419:40;;-1:-1:-1;;;;;9419:40:0;;;;;;;9449:9;1594:25:1;;1582:2;1567:18;;1448:177;9419:40:0;;;;;;;;9299:172;9481:35;9499:4;9505:2;9509:6;9481:17;:35::i;:::-;7174:2350;7071:2453;;;:::o;1608:224::-;1728:7;1764:12;1756:6;;;;1748:29;;;;-1:-1:-1;;;1748:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1788:9:0;1800:5;1804:1;1800;:5;:::i;:::-;1788:17;1608:224;-1:-1:-1;;;;;1608:224:0:o;9532:609::-;5591:6;:13;;-1:-1:-1;;5591:13:0;;;;;9610:55;;9647:7:::1;9610:55;9680:11;::::0;::::1;;9675:51:::0;9708:7:::1;9675:51;9760:16;::::0;;9774:1:::1;9760:16:::0;;;;;::::1;::::0;;9736:21:::1;::::0;9760:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9760:16:0::1;9736:40;;9805:4;9787;9792:1;9787:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9787:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9831:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9831:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9787:7;;9831:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9821:4;9826:1;9821:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9821:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9896:15:::1;::::0;9864:62:::1;::::0;9881:4:::1;::::0;9896:15:::1;9914:11:::0;9864:8:::1;:62::i;:::-;9937:15;::::0;:196:::1;::::0;-1:-1:-1;;;9937:196:0;;-1:-1:-1;;;;;9937:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10018:11;;9937:15:::1;::::0;10060:4;;10087::::1;::::0;10107:15:::1;::::0;9937:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9599:542;5615:1;-1:-1:-1::0;5627:6:0;:14;;-1:-1:-1;;5627:14:0;;;9532:609::o;12870:91::-;12927:9;;:26;;-1:-1:-1;;;;;12927:9:0;;;;:26;;;;;12946:6;;12927:9;:26;:9;:26;12946:6;12927:9;:26;;;;;;;;;;;;;;;;;;;11601:315;11749:13;;11722:4;;-1:-1:-1;;;;;11743:19:0;;;11749:13;;11743:19;:47;;;;;11784:6;11766:15;11776:4;-1:-1:-1;;;;;10967:18:0;10940:7;10967:18;;;:9;:18;;;;;;;10874:119;11766:15;:24;11743:47;11739:147;;;11829:10;;11807:41;;11825:2;;-1:-1:-1;;;;;11829:10:0;11841:6;11807:17;:41::i;:::-;-1:-1:-1;11870:4:0;11863:11;;11739:147;-1:-1:-1;11903:5:0;11601:315;;;;;:::o;6300:486::-;6444:6;;6419:7;;6444:6;;;;;6439:173;;6503:12;;-1:-1:-1;;;;;6503:12:0;10940:7;10967:18;;;:9;:18;;;;;;6493:28;:92;;;;-1:-1:-1;6574:11:0;;-1:-1:-1;;;;;6546:24:0;;;;;;:18;:24;;;;;;:39;;6493:92;6467:133;;;;;;6632:13;;-1:-1:-1;;;;;6626:19:0;;;6632:13;;6626:19;:44;;;;-1:-1:-1;;;;;;6649:21:0;;6665:4;6649:21;;6626:44;6622:112;;;6694:28;6718:3;6694:19;6705:7;;6694:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;6687:35;;;;6622:112;6751:27;6774:3;6751:18;6762:6;;6751;:10;;:18;;;;:::i;:27::-;6744:34;6300:486;-1:-1:-1;;;;6300:486:0:o;12755:107::-;12812:7;12844:1;12840;:5;12839:15;;12853:1;12839:15;;;-1:-1:-1;12849:1:0;12832:22;-1:-1:-1;12755:107:0:o;1277:179::-;1335:7;;1367:5;1371:1;1367;:5;:::i;:::-;1355:17;;1396:1;1391;:6;;1383:46;;;;-1:-1:-1;;;1383:46:0;;10673:2:1;1383:46:0;;;10655:21:1;10712:2;10692:18;;;10685:30;10751:29;10731:18;;;10724:57;10798:18;;1383:46:0;10471:351:1;6794:269:0;-1:-1:-1;;;;;6934:15:0;;;;;;:9;:15;;;;;;:27;;6954:6;6934:19;:27::i;:::-;-1:-1:-1;;;;;6916:15:0;;;;;;;:9;:15;;;;;;:45;;;;6988:13;;;;;;;:25;;7006:6;6988:17;:25::i;:::-;-1:-1:-1;;;;;6972:13:0;;;;;;;:9;:13;;;;;;;:41;;;;7029:26;;;;;;;;;;7048:6;1594:25:1;;1582:2;1567:18;;1448:177;1840:246:0;1898:7;1922:1;1927;1922:6;1918:47;;-1:-1:-1;1952:1:0;1945:8;;1918:47;1975:9;1987:5;1991:1;1987;:5;:::i;:::-;1975:17;-1:-1:-1;2020:1:0;2011:5;2015:1;1975:17;2011:5;:::i;:::-;:10;2003:56;;;;-1:-1:-1;;;2003:56:0;;11251:2:1;2003:56:0;;;11233:21:1;11290:2;11270:18;;;11263:30;11329:34;11309:18;;;11302:62;-1:-1:-1;;;11380:18:1;;;11373:31;11421:19;;2003:56:0;11049:397:1;2094:132:0;2152:7;2179:39;2183:1;2186;2179:39;;;;;;;;;;;;;;;;;:3;:39::i;1464:136::-;1522:7;1549:43;1553:1;1556;1549:43;;;;;;;;;;;;;;;;;:3;:43::i;2234:223::-;2354:7;2389:12;2382:5;2374:28;;;;-1:-1:-1;;;2374:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2413:9:0;2425:5;2429:1;2425;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2488:247::-;2547:6;2600:2;2588:9;2579:7;2575:23;2571:32;2568:52;;;2616:1;2613;2606:12;2568:52;2655:9;2642:23;2674:31;2699:5;2674:31;:::i;2740:388::-;2808:6;2816;2869:2;2857:9;2848:7;2844:23;2840:32;2837:52;;;2885:1;2882;2875:12;2837:52;2924:9;2911:23;2943:31;2968:5;2943:31;:::i;:::-;2993:5;-1:-1:-1;3050:2:1;3035:18;;3022:32;3063:33;3022:32;3063:33;:::i;:::-;3115:7;3105:17;;;2740:388;;;;;:::o;3133:127::-;3194:10;3189:3;3185:20;3182:1;3175:31;3225:4;3222:1;3215:15;3249:4;3246:1;3239:15;3265:422;3354:1;3397:5;3354:1;3411:270;3432:7;3422:8;3419:21;3411:270;;;3491:4;3487:1;3483:6;3479:17;3473:4;3470:27;3467:53;;;3500:18;;:::i;:::-;3550:7;3540:8;3536:22;3533:55;;;3570:16;;;;3533:55;3649:22;;;;3609:15;;;;3411:270;;;3415:3;3265:422;;;;;:::o;3692:806::-;3741:5;3771:8;3761:80;;-1:-1:-1;3812:1:1;3826:5;;3761:80;3860:4;3850:76;;-1:-1:-1;3897:1:1;3911:5;;3850:76;3942:4;3960:1;3955:59;;;;4028:1;4023:130;;;;3935:218;;3955:59;3985:1;3976:10;;3999:5;;;4023:130;4060:3;4050:8;4047:17;4044:43;;;4067:18;;:::i;:::-;-1:-1:-1;;4123:1:1;4109:16;;4138:5;;3935:218;;4237:2;4227:8;4224:16;4218:3;4212:4;4209:13;4205:36;4199:2;4189:8;4186:16;4181:2;4175:4;4172:12;4168:35;4165:77;4162:159;;;-1:-1:-1;4274:19:1;;;4306:5;;4162:159;4353:34;4378:8;4372:4;4353:34;:::i;:::-;4423:6;4419:1;4415:6;4411:19;4402:7;4399:32;4396:58;;;4434:18;;:::i;:::-;4472:20;;3692:806;-1:-1:-1;;;3692:806:1:o;4503:140::-;4561:5;4590:47;4631:4;4621:8;4617:19;4611:4;4590:47;:::i;4648:168::-;4721:9;;;4752;;4769:15;;;4763:22;;4749:37;4739:71;;4790:18;;:::i;4821:356::-;5023:2;5005:21;;;5042:18;;;5035:30;5101:34;5096:2;5081:18;;5074:62;5168:2;5153:18;;4821:356::o;8348:125::-;8413:9;;;8434:10;;;8431:36;;;8447:18;;:::i;8833:128::-;8900:9;;;8921:11;;;8918:37;;;8935:18;;:::i;9098:127::-;9159:10;9154:3;9150:20;9147:1;9140:31;9190:4;9187:1;9180:15;9214:4;9211:1;9204:15;9230:251;9300:6;9353:2;9341:9;9332:7;9328:23;9324:32;9321:52;;;9369:1;9366;9359:12;9321:52;9401:9;9395:16;9420:31;9445:5;9420:31;:::i;9486:980::-;9748:4;9796:3;9785:9;9781:19;9827:6;9816:9;9809:25;9853:2;9891:6;9886:2;9875:9;9871:18;9864:34;9934:3;9929:2;9918:9;9914:18;9907:31;9958:6;9993;9987:13;10024:6;10016;10009:22;10062:3;10051:9;10047:19;10040:26;;10101:2;10093:6;10089:15;10075:29;;10122:1;10132:195;10146:6;10143:1;10140:13;10132:195;;;10211:13;;-1:-1:-1;;;;;10207:39:1;10195:52;;10302:15;;;;10267:12;;;;10243:1;10161:9;10132:195;;;-1:-1:-1;;;;;;;10383:32:1;;;;10378:2;10363:18;;10356:60;-1:-1:-1;;;10447:3:1;10432:19;10425:35;10344:3;9486:980;-1:-1:-1;;;9486:980:1:o;10827:217::-;10867:1;10893;10883:132;;10937:10;10932:3;10928:20;10925:1;10918:31;10972:4;10969:1;10962:15;11000:4;10997:1;10990:15;10883:132;-1:-1:-1;11029:9:1;;10827:217::o

Swarm Source

ipfs://e2e15d974de62353618f8cc0db82817b128b9af949170cdfe1a6f6c04365d686
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.