ETH Price: $3,352.03 (-1.09%)

Token

Alpha Swap (ALPHA)
 

Overview

Max Total Supply

1,000,000 ALPHA

Holders

118

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 ALPHA

Value
$0.00
0x40b5935ac3e7a6864ed5ac8c40b3134cb8124169
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:
ALPHA

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : alphaswap.sol
/** 

Website: https://alphaswap.co/
TG Portal: https://t.me/AlphaSwapPortal
Twitter: https://twitter.com/alpha_swap_erc

**/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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;
    address private _previousOwner;
    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);
    }



}

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;
    }
}

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
        );
}

contract ALPHA is Context, IERC20, Ownable {
    string private constant _name = "Alpha Swap";
    string private constant _symbol = "ALPHA";

    using SafeMath for uint256;
    mapping(address => bool) public bots; 

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 5;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 5;

    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;


    mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0x8dD4f9Fd981E1F25ca4c56CEF55D3d750bd613A5);
    address payable private _marketingAddress = payable(0x0f2253a93e9354b3A9a86c3eD7C895Fc59447560);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 7500 * 10**9;
    uint256 public _maxWalletSize = 7500 * 10**9;
    uint256 public _swapTokensAtAmount = 100 * 10**9;

    uint8 private constant _decimals = 9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
  

     modifier checkMaxWalletSize(address to, uint256 amount) {
        if (to != uniswapV2Pair && !_isExcludedFromFee[to]) {
            require(balanceOf(to) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
        }
        _;
    }

    modifier checkMaxTxAmount(uint256 amount) {
        require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
        _;
    }

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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 tokenFromReflection(_rOwned[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 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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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 getTaxFeeOnBuy() external view returns (uint256) {
    return _taxFeeOnBuy;
}

function getTaxFeeOnSell() external view returns (uint256) {
    return _taxFeeOnSell;
}


    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");
        require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");


      

        if (from != owner() && to != owner()) {

              if (to != uniswapV2Pair && !_isExcludedFromFee[to]) {
        require(balanceOf(to) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
    }

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading() public onlyOwner {
        tradingOpen = true;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[],"name":"_swapTokensAtAmount","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTaxFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTaxFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"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"}]

608060405266038d7ea4c680005f196200001a9190620006f7565b5f196200002891906200075b565b6007555f6009556005600a555f600b556005600c55600b54600d55600c54600e55600d54600f55600e54601055738dd4f9fd981e1f25ca4c56cef55d3d750bd613a560125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730f2253a93e9354b3a9a86c3ed7c895fc5944756060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601560146101000a81548160ff0219169083151502179055505f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506506d23ad5f8006016556506d23ad5f80060175564174876e80060185534801562000174575f80fd5b505f620001866200069360201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460035f620002386200069360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000317573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200033d9190620007fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003c99190620007fa565b6040518363ffffffff1660e01b8152600401620003e89291906200083b565b6020604051808303815f875af115801562000405573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042b9190620007fa565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160065f6200047f6200069a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200061f6200069360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c6800060405162000684919062000877565b60405180910390a35062000892565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200070382620006c1565b91506200071083620006c1565b925082620007235762000722620006ca565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200076782620006c1565b91506200077483620006c1565b92508282039050818111156200078f576200078e6200072e565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007c48262000799565b9050919050565b620007d681620007b8565b8114620007e1575f80fd5b50565b5f81519050620007f481620007cb565b92915050565b5f6020828403121562000812576200081162000795565b5b5f6200082184828501620007e4565b91505092915050565b6200083581620007b8565b82525050565b5f604082019050620008505f8301856200082a565b6200085f60208301846200082a565b9392505050565b6200087181620006c1565b82525050565b5f6020820190506200088c5f83018462000866565b92915050565b613af580620008a05f395ff3fe6080604052600436106101da575f3560e01c806374010ece11610101578063a2a957bb11610094578063c3c8cd8011610063578063c3c8cd8014610677578063c492f0461461068d578063dd62ed3e146106b5578063ea1644d5146106f1576101e1565b8063a2a957bb146105ad578063a9059cbb146105d5578063bfd7928414610611578063bff28cf71461064d576101e1565b80638da5cb5b116100d05780638da5cb5b146105075780638f9a55c01461053157806395d89b411461055b57806398a5c31514610585576101e1565b806374010ece146104635780637c519ffb1461048b5780637d1db4a5146104a15780637f2feddc146104cb576101e1565b80632fd689e3116101795780636d8aa8f8116101485780636d8aa8f8146103d35780636fc3eaec146103fb57806370a0823114610411578063715018a61461044d576101e1565b80632fd689e31461032d578063313ce5671461035757806349bd5a5e146103815780636b999053146103ab576101e1565b80631694505e116101b55780631694505e1461027357806318160ddd1461029d5780631bc7522b146102c757806323b872dd146102f1576101e1565b8062b8cf2a146101e557806306fdde031461020d578063095ea7b314610237576101e1565b366101e157005b5f80fd5b3480156101f0575f80fd5b5061020b60048036038101906102069190612c1e565b610719565b005b348015610218575f80fd5b50610221610838565b60405161022e9190612cdf565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190612d32565b610875565b60405161026a9190612d8a565b60405180910390f35b34801561027e575f80fd5b50610287610892565b6040516102949190612dfe565b60405180910390f35b3480156102a8575f80fd5b506102b16108b7565b6040516102be9190612e26565b60405180910390f35b3480156102d2575f80fd5b506102db6108c5565b6040516102e89190612e26565b60405180910390f35b3480156102fc575f80fd5b5061031760048036038101906103129190612e3f565b6108ce565b6040516103249190612d8a565b60405180910390f35b348015610338575f80fd5b506103416109a2565b60405161034e9190612e26565b60405180910390f35b348015610362575f80fd5b5061036b6109a8565b6040516103789190612eaa565b60405180910390f35b34801561038c575f80fd5b506103956109b0565b6040516103a29190612ed2565b60405180910390f35b3480156103b6575f80fd5b506103d160048036038101906103cc9190612eeb565b6109d5565b005b3480156103de575f80fd5b506103f960048036038101906103f49190612f40565b610ac0565b005b348015610406575f80fd5b5061040f610b71565b005b34801561041c575f80fd5b5061043760048036038101906104329190612eeb565b610c3e565b6040516104449190612e26565b60405180910390f35b348015610458575f80fd5b50610461610c8c565b005b34801561046e575f80fd5b5061048960048036038101906104849190612f6b565b610dda565b005b348015610496575f80fd5b5061049f610e78565b005b3480156104ac575f80fd5b506104b5610f29565b6040516104c29190612e26565b60405180910390f35b3480156104d6575f80fd5b506104f160048036038101906104ec9190612eeb565b610f2f565b6040516104fe9190612e26565b60405180910390f35b348015610512575f80fd5b5061051b610f44565b6040516105289190612ed2565b60405180910390f35b34801561053c575f80fd5b50610545610f6b565b6040516105529190612e26565b60405180910390f35b348015610566575f80fd5b5061056f610f71565b60405161057c9190612cdf565b60405180910390f35b348015610590575f80fd5b506105ab60048036038101906105a69190612f6b565b610fae565b005b3480156105b8575f80fd5b506105d360048036038101906105ce9190612f96565b61104c565b005b3480156105e0575f80fd5b506105fb60048036038101906105f69190612d32565b611102565b6040516106089190612d8a565b60405180910390f35b34801561061c575f80fd5b5061063760048036038101906106329190612eeb565b61111f565b6040516106449190612d8a565b60405180910390f35b348015610658575f80fd5b5061066161113c565b60405161066e9190612e26565b60405180910390f35b348015610682575f80fd5b5061068b611145565b005b348015610698575f80fd5b506106b360048036038101906106ae9190613053565b61121a565b005b3480156106c0575f80fd5b506106db60048036038101906106d691906130b0565b611349565b6040516106e89190612e26565b60405180910390f35b3480156106fc575f80fd5b5061071760048036038101906107129190612f6b565b6113cb565b005b610721611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a490613138565b60405180910390fd5b5f5b815181101561083457600160025f8484815181106107d0576107cf613156565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107af565b5050565b60606040518060400160405280600a81526020017f416c706861205377617000000000000000000000000000000000000000000000815250905090565b5f610888610881611469565b8484611470565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f66038d7ea4c68000905090565b5f600c54905090565b5f6108da848484611633565b610997846108e6611469565b61099285604051806060016040528060288152602001613a986028913960055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610949611469565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fda9092919063ffffffff16565b611470565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109dd611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6090613138565b60405180910390fd5b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610ac8611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b90613138565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb1611469565b73ffffffffffffffffffffffffffffffffffffffff161480610c26575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c0e611469565b73ffffffffffffffffffffffffffffffffffffffff16145b610c2e575f80fd5b5f479050610c3b8161203c565b50565b5f610c8560035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120a4565b9050919050565b610c94611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790613138565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610de2611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613138565b60405180910390fd5b8060168190555050565b610e80611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390613138565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600581526020017f414c504841000000000000000000000000000000000000000000000000000000815250905090565b610fb6611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103990613138565b60405180910390fd5b8060188190555050565b611054611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d790613138565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b5f61111561110e611469565b8484611633565b6001905092915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f600a54905090565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611185611469565b73ffffffffffffffffffffffffffffffffffffffff1614806111fa575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111e2611469565b73ffffffffffffffffffffffffffffffffffffffff16145b611202575f80fd5b5f61120c30610c3e565b905061121781612110565b50565b611222611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590613138565b60405180910390fd5b5f5b83839050811015611343578160065f8686858181106112d2576112d1613156565b5b90506020020160208101906112e79190612eeb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506112b0565b50505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113d3611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690613138565b60405180910390fd5b8060178190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d5906131f3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390613281565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116269190612e26565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116989061330f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117069061339d565b60405180910390fd5b5f8111611751576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117489061342b565b60405180910390fd5b601654811115611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90613493565b60405180910390fd5b61179e610f44565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180c57506117dc610f44565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ce75760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118b5575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191357601754816118c784610c3e565b6118d191906134de565b1115611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613581565b60405180910390fd5b5b601560149054906101000a900460ff1661199d5761192f610f44565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461199c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119939061360f565b60405180910390fd5b5b6016548111156119e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d990613493565b60405180910390fd5b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a80575060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab69061369d565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b6b5760175481611b2084610c3e565b611b2a91906134de565b10611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190613581565b60405180910390fd5b5b5f611b7530610c3e565b90505f60185482101590506016548210611b8f5760165491505b808015611ba7575060158054906101000a900460ff16155b8015611c00575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c185750601560169054906101000a900460ff165b8015611c6b575060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cbe575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ce457611ccc82612110565b5f4790505f811115611ce257611ce14761203c565b5b505b50505b5f6001905060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611d87575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611e38575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e37575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e45575f9050611fc8565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611eee575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f0657600954600d81905550600a54600e819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611faf575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fc757600b54600d81905550600c54600e819055505b5b611fd484848484612379565b50505050565b5f838311158290612021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120189190612cdf565b60405180910390fd5b505f838561202f91906136bb565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120a0573d5f803e3d5ffd5b5050565b5f6007548211156120ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e19061375e565b60405180910390fd5b5f6120f36123a6565b905061210881846123cf90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561214657612145612a88565b5b6040519080825280602002602001820160405280156121745781602001602082028036833780820191505090505b50905030815f8151811061218b5761218a613156565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561222f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122539190613790565b8160018151811061226757612266613156565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122cd3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611470565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161232f9594939291906138ab565b5f604051808303815f87803b158015612346575f80fd5b505af1158015612358573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b8061238757612386612418565b5b612392848484612451565b806123a05761239f612611565b5b50505050565b5f805f6123b1612625565b915091506123c881836123cf90919063ffffffff16565b9250505090565b5f61241083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061267e565b905092915050565b5f600d5414801561242a57505f600e54145b61244f57600d54600f81905550600e546010819055505f600d819055505f600e819055505b565b5f805f805f80612460876126df565b9550955095509550955095506124bc8660035f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461273f90919063ffffffff16565b60035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061254d8560035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461278890919063ffffffff16565b60035f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612597816127e5565b6125a1848361289c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125fe9190612e26565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b5f805f60075490505f66038d7ea4c68000905061265466038d7ea4c680006007546123cf90919063ffffffff16565b8210156126715760075466038d7ea4c6800093509350505061267a565b81819350935050505b9091565b5f80831182906126c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bb9190612cdf565b60405180910390fd5b505f83856126d29190613930565b9050809150509392505050565b5f805f805f805f805f6126f78a600d54600e546128d6565b9250925092505f6127066123a6565b90505f805f6127178e878787612968565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61278083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fda565b905092915050565b5f80828461279691906134de565b9050838110156127db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d2906139aa565b60405180910390fd5b8091505092915050565b5f6127ee6123a6565b90505f61280482846129ec90919063ffffffff16565b90506128568160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461278890919063ffffffff16565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6128b18260075461273f90919063ffffffff16565b6007819055506128cc8160085461278890919063ffffffff16565b6008819055505050565b5f805f8061290060646128f2888a6129ec90919063ffffffff16565b6123cf90919063ffffffff16565b90505f612929606461291b888b6129ec90919063ffffffff16565b6123cf90919063ffffffff16565b90505f61295182612943858c61273f90919063ffffffff16565b61273f90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061297f85896129ec90919063ffffffff16565b90505f61299586896129ec90919063ffffffff16565b90505f6129ab87896129ec90919063ffffffff16565b90505f6129d3826129c5858761273f90919063ffffffff16565b61273f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f8083036129fc575f9050612a5d565b5f8284612a0991906139c8565b9050828482612a189190613930565b14612a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4f90613a79565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612abe82612a78565b810181811067ffffffffffffffff82111715612add57612adc612a88565b5b80604052505050565b5f612aef612a63565b9050612afb8282612ab5565b919050565b5f67ffffffffffffffff821115612b1a57612b19612a88565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b5882612b2f565b9050919050565b612b6881612b4e565b8114612b72575f80fd5b50565b5f81359050612b8381612b5f565b92915050565b5f612b9b612b9684612b00565b612ae6565b90508083825260208201905060208402830185811115612bbe57612bbd612b2b565b5b835b81811015612be75780612bd38882612b75565b845260208401935050602081019050612bc0565b5050509392505050565b5f82601f830112612c0557612c04612a74565b5b8135612c15848260208601612b89565b91505092915050565b5f60208284031215612c3357612c32612a6c565b5b5f82013567ffffffffffffffff811115612c5057612c4f612a70565b5b612c5c84828501612bf1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c9c578082015181840152602081019050612c81565b5f8484015250505050565b5f612cb182612c65565b612cbb8185612c6f565b9350612ccb818560208601612c7f565b612cd481612a78565b840191505092915050565b5f6020820190508181035f830152612cf78184612ca7565b905092915050565b5f819050919050565b612d1181612cff565b8114612d1b575f80fd5b50565b5f81359050612d2c81612d08565b92915050565b5f8060408385031215612d4857612d47612a6c565b5b5f612d5585828601612b75565b9250506020612d6685828601612d1e565b9150509250929050565b5f8115159050919050565b612d8481612d70565b82525050565b5f602082019050612d9d5f830184612d7b565b92915050565b5f819050919050565b5f612dc6612dc1612dbc84612b2f565b612da3565b612b2f565b9050919050565b5f612dd782612dac565b9050919050565b5f612de882612dcd565b9050919050565b612df881612dde565b82525050565b5f602082019050612e115f830184612def565b92915050565b612e2081612cff565b82525050565b5f602082019050612e395f830184612e17565b92915050565b5f805f60608486031215612e5657612e55612a6c565b5b5f612e6386828701612b75565b9350506020612e7486828701612b75565b9250506040612e8586828701612d1e565b9150509250925092565b5f60ff82169050919050565b612ea481612e8f565b82525050565b5f602082019050612ebd5f830184612e9b565b92915050565b612ecc81612b4e565b82525050565b5f602082019050612ee55f830184612ec3565b92915050565b5f60208284031215612f0057612eff612a6c565b5b5f612f0d84828501612b75565b91505092915050565b612f1f81612d70565b8114612f29575f80fd5b50565b5f81359050612f3a81612f16565b92915050565b5f60208284031215612f5557612f54612a6c565b5b5f612f6284828501612f2c565b91505092915050565b5f60208284031215612f8057612f7f612a6c565b5b5f612f8d84828501612d1e565b91505092915050565b5f805f8060808587031215612fae57612fad612a6c565b5b5f612fbb87828801612d1e565b9450506020612fcc87828801612d1e565b9350506040612fdd87828801612d1e565b9250506060612fee87828801612d1e565b91505092959194509250565b5f80fd5b5f8083601f84011261301357613012612a74565b5b8235905067ffffffffffffffff8111156130305761302f612ffa565b5b60208301915083602082028301111561304c5761304b612b2b565b5b9250929050565b5f805f6040848603121561306a57613069612a6c565b5b5f84013567ffffffffffffffff81111561308757613086612a70565b5b61309386828701612ffe565b935093505060206130a686828701612f2c565b9150509250925092565b5f80604083850312156130c6576130c5612a6c565b5b5f6130d385828601612b75565b92505060206130e485828601612b75565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613122602083612c6f565b915061312d826130ee565b602082019050919050565b5f6020820190508181035f83015261314f81613116565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6131dd602483612c6f565b91506131e882613183565b604082019050919050565b5f6020820190508181035f83015261320a816131d1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61326b602283612c6f565b915061327682613211565b604082019050919050565b5f6020820190508181035f8301526132988161325f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132f9602583612c6f565b91506133048261329f565b604082019050919050565b5f6020820190508181035f830152613326816132ed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613387602383612c6f565b91506133928261332d565b604082019050919050565b5f6020820190508181035f8301526133b48161337b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613415602983612c6f565b9150613420826133bb565b604082019050919050565b5f6020820190508181035f83015261344281613409565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f61347d601c83612c6f565b915061348882613449565b602082019050919050565b5f6020820190508181035f8301526134aa81613471565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6134e882612cff565b91506134f383612cff565b925082820190508082111561350b5761350a6134b1565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f61356b602383612c6f565b915061357682613511565b604082019050919050565b5f6020820190508181035f8301526135988161355f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f6135f9603f83612c6f565b91506136048261359f565b604082019050919050565b5f6020820190508181035f830152613626816135ed565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613687602383612c6f565b91506136928261362d565b604082019050919050565b5f6020820190508181035f8301526136b48161367b565b9050919050565b5f6136c582612cff565b91506136d083612cff565b92508282039050818111156136e8576136e76134b1565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613748602a83612c6f565b9150613753826136ee565b604082019050919050565b5f6020820190508181035f8301526137758161373c565b9050919050565b5f8151905061378a81612b5f565b92915050565b5f602082840312156137a5576137a4612a6c565b5b5f6137b28482850161377c565b91505092915050565b5f819050919050565b5f6137de6137d96137d4846137bb565b612da3565b612cff565b9050919050565b6137ee816137c4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61382681612b4e565b82525050565b5f613837838361381d565b60208301905092915050565b5f602082019050919050565b5f613859826137f4565b61386381856137fe565b935061386e8361380e565b805f5b8381101561389e578151613885888261382c565b975061389083613843565b925050600181019050613871565b5085935050505092915050565b5f60a0820190506138be5f830188612e17565b6138cb60208301876137e5565b81810360408301526138dd818661384f565b90506138ec6060830185612ec3565b6138f96080830184612e17565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61393a82612cff565b915061394583612cff565b92508261395557613954613903565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613994601b83612c6f565b915061399f82613960565b602082019050919050565b5f6020820190508181035f8301526139c181613988565b9050919050565b5f6139d282612cff565b91506139dd83612cff565b92508282026139eb81612cff565b91508282048414831517613a0257613a016134b1565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a63602183612c6f565b9150613a6e82613a09565b604082019050919050565b5f6020820190508181035f830152613a9081613a57565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d8f34aaa2f78b7e087eefbf3199b80eddc64de2cacc02ce475cbb5936b46372164736f6c63430008160033

Deployed Bytecode

0x6080604052600436106101da575f3560e01c806374010ece11610101578063a2a957bb11610094578063c3c8cd8011610063578063c3c8cd8014610677578063c492f0461461068d578063dd62ed3e146106b5578063ea1644d5146106f1576101e1565b8063a2a957bb146105ad578063a9059cbb146105d5578063bfd7928414610611578063bff28cf71461064d576101e1565b80638da5cb5b116100d05780638da5cb5b146105075780638f9a55c01461053157806395d89b411461055b57806398a5c31514610585576101e1565b806374010ece146104635780637c519ffb1461048b5780637d1db4a5146104a15780637f2feddc146104cb576101e1565b80632fd689e3116101795780636d8aa8f8116101485780636d8aa8f8146103d35780636fc3eaec146103fb57806370a0823114610411578063715018a61461044d576101e1565b80632fd689e31461032d578063313ce5671461035757806349bd5a5e146103815780636b999053146103ab576101e1565b80631694505e116101b55780631694505e1461027357806318160ddd1461029d5780631bc7522b146102c757806323b872dd146102f1576101e1565b8062b8cf2a146101e557806306fdde031461020d578063095ea7b314610237576101e1565b366101e157005b5f80fd5b3480156101f0575f80fd5b5061020b60048036038101906102069190612c1e565b610719565b005b348015610218575f80fd5b50610221610838565b60405161022e9190612cdf565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190612d32565b610875565b60405161026a9190612d8a565b60405180910390f35b34801561027e575f80fd5b50610287610892565b6040516102949190612dfe565b60405180910390f35b3480156102a8575f80fd5b506102b16108b7565b6040516102be9190612e26565b60405180910390f35b3480156102d2575f80fd5b506102db6108c5565b6040516102e89190612e26565b60405180910390f35b3480156102fc575f80fd5b5061031760048036038101906103129190612e3f565b6108ce565b6040516103249190612d8a565b60405180910390f35b348015610338575f80fd5b506103416109a2565b60405161034e9190612e26565b60405180910390f35b348015610362575f80fd5b5061036b6109a8565b6040516103789190612eaa565b60405180910390f35b34801561038c575f80fd5b506103956109b0565b6040516103a29190612ed2565b60405180910390f35b3480156103b6575f80fd5b506103d160048036038101906103cc9190612eeb565b6109d5565b005b3480156103de575f80fd5b506103f960048036038101906103f49190612f40565b610ac0565b005b348015610406575f80fd5b5061040f610b71565b005b34801561041c575f80fd5b5061043760048036038101906104329190612eeb565b610c3e565b6040516104449190612e26565b60405180910390f35b348015610458575f80fd5b50610461610c8c565b005b34801561046e575f80fd5b5061048960048036038101906104849190612f6b565b610dda565b005b348015610496575f80fd5b5061049f610e78565b005b3480156104ac575f80fd5b506104b5610f29565b6040516104c29190612e26565b60405180910390f35b3480156104d6575f80fd5b506104f160048036038101906104ec9190612eeb565b610f2f565b6040516104fe9190612e26565b60405180910390f35b348015610512575f80fd5b5061051b610f44565b6040516105289190612ed2565b60405180910390f35b34801561053c575f80fd5b50610545610f6b565b6040516105529190612e26565b60405180910390f35b348015610566575f80fd5b5061056f610f71565b60405161057c9190612cdf565b60405180910390f35b348015610590575f80fd5b506105ab60048036038101906105a69190612f6b565b610fae565b005b3480156105b8575f80fd5b506105d360048036038101906105ce9190612f96565b61104c565b005b3480156105e0575f80fd5b506105fb60048036038101906105f69190612d32565b611102565b6040516106089190612d8a565b60405180910390f35b34801561061c575f80fd5b5061063760048036038101906106329190612eeb565b61111f565b6040516106449190612d8a565b60405180910390f35b348015610658575f80fd5b5061066161113c565b60405161066e9190612e26565b60405180910390f35b348015610682575f80fd5b5061068b611145565b005b348015610698575f80fd5b506106b360048036038101906106ae9190613053565b61121a565b005b3480156106c0575f80fd5b506106db60048036038101906106d691906130b0565b611349565b6040516106e89190612e26565b60405180910390f35b3480156106fc575f80fd5b5061071760048036038101906107129190612f6b565b6113cb565b005b610721611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a490613138565b60405180910390fd5b5f5b815181101561083457600160025f8484815181106107d0576107cf613156565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107af565b5050565b60606040518060400160405280600a81526020017f416c706861205377617000000000000000000000000000000000000000000000815250905090565b5f610888610881611469565b8484611470565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f66038d7ea4c68000905090565b5f600c54905090565b5f6108da848484611633565b610997846108e6611469565b61099285604051806060016040528060288152602001613a986028913960055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610949611469565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fda9092919063ffffffff16565b611470565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109dd611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6090613138565b60405180910390fd5b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610ac8611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b90613138565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb1611469565b73ffffffffffffffffffffffffffffffffffffffff161480610c26575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c0e611469565b73ffffffffffffffffffffffffffffffffffffffff16145b610c2e575f80fd5b5f479050610c3b8161203c565b50565b5f610c8560035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120a4565b9050919050565b610c94611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790613138565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610de2611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613138565b60405180910390fd5b8060168190555050565b610e80611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390613138565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600581526020017f414c504841000000000000000000000000000000000000000000000000000000815250905090565b610fb6611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103990613138565b60405180910390fd5b8060188190555050565b611054611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d790613138565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b5f61111561110e611469565b8484611633565b6001905092915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f600a54905090565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611185611469565b73ffffffffffffffffffffffffffffffffffffffff1614806111fa575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111e2611469565b73ffffffffffffffffffffffffffffffffffffffff16145b611202575f80fd5b5f61120c30610c3e565b905061121781612110565b50565b611222611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590613138565b60405180910390fd5b5f5b83839050811015611343578160065f8686858181106112d2576112d1613156565b5b90506020020160208101906112e79190612eeb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506112b0565b50505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113d3611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690613138565b60405180910390fd5b8060178190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d5906131f3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390613281565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116269190612e26565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116989061330f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117069061339d565b60405180910390fd5b5f8111611751576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117489061342b565b60405180910390fd5b601654811115611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90613493565b60405180910390fd5b61179e610f44565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180c57506117dc610f44565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ce75760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118b5575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191357601754816118c784610c3e565b6118d191906134de565b1115611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613581565b60405180910390fd5b5b601560149054906101000a900460ff1661199d5761192f610f44565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461199c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119939061360f565b60405180910390fd5b5b6016548111156119e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d990613493565b60405180910390fd5b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a80575060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab69061369d565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b6b5760175481611b2084610c3e565b611b2a91906134de565b10611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190613581565b60405180910390fd5b5b5f611b7530610c3e565b90505f60185482101590506016548210611b8f5760165491505b808015611ba7575060158054906101000a900460ff16155b8015611c00575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c185750601560169054906101000a900460ff165b8015611c6b575060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cbe575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ce457611ccc82612110565b5f4790505f811115611ce257611ce14761203c565b5b505b50505b5f6001905060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611d87575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611e38575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e37575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e45575f9050611fc8565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611eee575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f0657600954600d81905550600a54600e819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611faf575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fc757600b54600d81905550600c54600e819055505b5b611fd484848484612379565b50505050565b5f838311158290612021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120189190612cdf565b60405180910390fd5b505f838561202f91906136bb565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120a0573d5f803e3d5ffd5b5050565b5f6007548211156120ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e19061375e565b60405180910390fd5b5f6120f36123a6565b905061210881846123cf90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561214657612145612a88565b5b6040519080825280602002602001820160405280156121745781602001602082028036833780820191505090505b50905030815f8151811061218b5761218a613156565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561222f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122539190613790565b8160018151811061226757612266613156565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122cd3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611470565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161232f9594939291906138ab565b5f604051808303815f87803b158015612346575f80fd5b505af1158015612358573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b8061238757612386612418565b5b612392848484612451565b806123a05761239f612611565b5b50505050565b5f805f6123b1612625565b915091506123c881836123cf90919063ffffffff16565b9250505090565b5f61241083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061267e565b905092915050565b5f600d5414801561242a57505f600e54145b61244f57600d54600f81905550600e546010819055505f600d819055505f600e819055505b565b5f805f805f80612460876126df565b9550955095509550955095506124bc8660035f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461273f90919063ffffffff16565b60035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061254d8560035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461278890919063ffffffff16565b60035f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612597816127e5565b6125a1848361289c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125fe9190612e26565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b5f805f60075490505f66038d7ea4c68000905061265466038d7ea4c680006007546123cf90919063ffffffff16565b8210156126715760075466038d7ea4c6800093509350505061267a565b81819350935050505b9091565b5f80831182906126c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bb9190612cdf565b60405180910390fd5b505f83856126d29190613930565b9050809150509392505050565b5f805f805f805f805f6126f78a600d54600e546128d6565b9250925092505f6127066123a6565b90505f805f6127178e878787612968565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61278083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fda565b905092915050565b5f80828461279691906134de565b9050838110156127db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d2906139aa565b60405180910390fd5b8091505092915050565b5f6127ee6123a6565b90505f61280482846129ec90919063ffffffff16565b90506128568160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461278890919063ffffffff16565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6128b18260075461273f90919063ffffffff16565b6007819055506128cc8160085461278890919063ffffffff16565b6008819055505050565b5f805f8061290060646128f2888a6129ec90919063ffffffff16565b6123cf90919063ffffffff16565b90505f612929606461291b888b6129ec90919063ffffffff16565b6123cf90919063ffffffff16565b90505f61295182612943858c61273f90919063ffffffff16565b61273f90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061297f85896129ec90919063ffffffff16565b90505f61299586896129ec90919063ffffffff16565b90505f6129ab87896129ec90919063ffffffff16565b90505f6129d3826129c5858761273f90919063ffffffff16565b61273f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f8083036129fc575f9050612a5d565b5f8284612a0991906139c8565b9050828482612a189190613930565b14612a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4f90613a79565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612abe82612a78565b810181811067ffffffffffffffff82111715612add57612adc612a88565b5b80604052505050565b5f612aef612a63565b9050612afb8282612ab5565b919050565b5f67ffffffffffffffff821115612b1a57612b19612a88565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b5882612b2f565b9050919050565b612b6881612b4e565b8114612b72575f80fd5b50565b5f81359050612b8381612b5f565b92915050565b5f612b9b612b9684612b00565b612ae6565b90508083825260208201905060208402830185811115612bbe57612bbd612b2b565b5b835b81811015612be75780612bd38882612b75565b845260208401935050602081019050612bc0565b5050509392505050565b5f82601f830112612c0557612c04612a74565b5b8135612c15848260208601612b89565b91505092915050565b5f60208284031215612c3357612c32612a6c565b5b5f82013567ffffffffffffffff811115612c5057612c4f612a70565b5b612c5c84828501612bf1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c9c578082015181840152602081019050612c81565b5f8484015250505050565b5f612cb182612c65565b612cbb8185612c6f565b9350612ccb818560208601612c7f565b612cd481612a78565b840191505092915050565b5f6020820190508181035f830152612cf78184612ca7565b905092915050565b5f819050919050565b612d1181612cff565b8114612d1b575f80fd5b50565b5f81359050612d2c81612d08565b92915050565b5f8060408385031215612d4857612d47612a6c565b5b5f612d5585828601612b75565b9250506020612d6685828601612d1e565b9150509250929050565b5f8115159050919050565b612d8481612d70565b82525050565b5f602082019050612d9d5f830184612d7b565b92915050565b5f819050919050565b5f612dc6612dc1612dbc84612b2f565b612da3565b612b2f565b9050919050565b5f612dd782612dac565b9050919050565b5f612de882612dcd565b9050919050565b612df881612dde565b82525050565b5f602082019050612e115f830184612def565b92915050565b612e2081612cff565b82525050565b5f602082019050612e395f830184612e17565b92915050565b5f805f60608486031215612e5657612e55612a6c565b5b5f612e6386828701612b75565b9350506020612e7486828701612b75565b9250506040612e8586828701612d1e565b9150509250925092565b5f60ff82169050919050565b612ea481612e8f565b82525050565b5f602082019050612ebd5f830184612e9b565b92915050565b612ecc81612b4e565b82525050565b5f602082019050612ee55f830184612ec3565b92915050565b5f60208284031215612f0057612eff612a6c565b5b5f612f0d84828501612b75565b91505092915050565b612f1f81612d70565b8114612f29575f80fd5b50565b5f81359050612f3a81612f16565b92915050565b5f60208284031215612f5557612f54612a6c565b5b5f612f6284828501612f2c565b91505092915050565b5f60208284031215612f8057612f7f612a6c565b5b5f612f8d84828501612d1e565b91505092915050565b5f805f8060808587031215612fae57612fad612a6c565b5b5f612fbb87828801612d1e565b9450506020612fcc87828801612d1e565b9350506040612fdd87828801612d1e565b9250506060612fee87828801612d1e565b91505092959194509250565b5f80fd5b5f8083601f84011261301357613012612a74565b5b8235905067ffffffffffffffff8111156130305761302f612ffa565b5b60208301915083602082028301111561304c5761304b612b2b565b5b9250929050565b5f805f6040848603121561306a57613069612a6c565b5b5f84013567ffffffffffffffff81111561308757613086612a70565b5b61309386828701612ffe565b935093505060206130a686828701612f2c565b9150509250925092565b5f80604083850312156130c6576130c5612a6c565b5b5f6130d385828601612b75565b92505060206130e485828601612b75565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613122602083612c6f565b915061312d826130ee565b602082019050919050565b5f6020820190508181035f83015261314f81613116565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6131dd602483612c6f565b91506131e882613183565b604082019050919050565b5f6020820190508181035f83015261320a816131d1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61326b602283612c6f565b915061327682613211565b604082019050919050565b5f6020820190508181035f8301526132988161325f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132f9602583612c6f565b91506133048261329f565b604082019050919050565b5f6020820190508181035f830152613326816132ed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613387602383612c6f565b91506133928261332d565b604082019050919050565b5f6020820190508181035f8301526133b48161337b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613415602983612c6f565b9150613420826133bb565b604082019050919050565b5f6020820190508181035f83015261344281613409565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f61347d601c83612c6f565b915061348882613449565b602082019050919050565b5f6020820190508181035f8301526134aa81613471565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6134e882612cff565b91506134f383612cff565b925082820190508082111561350b5761350a6134b1565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f61356b602383612c6f565b915061357682613511565b604082019050919050565b5f6020820190508181035f8301526135988161355f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f6135f9603f83612c6f565b91506136048261359f565b604082019050919050565b5f6020820190508181035f830152613626816135ed565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613687602383612c6f565b91506136928261362d565b604082019050919050565b5f6020820190508181035f8301526136b48161367b565b9050919050565b5f6136c582612cff565b91506136d083612cff565b92508282039050818111156136e8576136e76134b1565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613748602a83612c6f565b9150613753826136ee565b604082019050919050565b5f6020820190508181035f8301526137758161373c565b9050919050565b5f8151905061378a81612b5f565b92915050565b5f602082840312156137a5576137a4612a6c565b5b5f6137b28482850161377c565b91505092915050565b5f819050919050565b5f6137de6137d96137d4846137bb565b612da3565b612cff565b9050919050565b6137ee816137c4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61382681612b4e565b82525050565b5f613837838361381d565b60208301905092915050565b5f602082019050919050565b5f613859826137f4565b61386381856137fe565b935061386e8361380e565b805f5b8381101561389e578151613885888261382c565b975061389083613843565b925050600181019050613871565b5085935050505092915050565b5f60a0820190506138be5f830188612e17565b6138cb60208301876137e5565b81810360408301526138dd818661384f565b90506138ec6060830185612ec3565b6138f96080830184612e17565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61393a82612cff565b915061394583612cff565b92508261395557613954613903565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613994601b83612c6f565b915061399f82613960565b602082019050919050565b5f6020820190508181035f8301526139c181613988565b9050919050565b5f6139d282612cff565b91506139dd83612cff565b92508282026139eb81612cff565b91508282048414831517613a0257613a016134b1565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a63602183612c6f565b9150613a6e82613a09565b604082019050919050565b5f6020820190508181035f830152613a9081613a57565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d8f34aaa2f78b7e087eefbf3199b80eddc64de2cacc02ce475cbb5936b46372164736f6c63430008160033

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.