ETH Price: $3,156.08 (+1.42%)

Token

UniDog (ABE)
 

Overview

Max Total Supply

1,000,000,000 ABE

Holders

98

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
17,063,830.83073912 ABE

Value
$0.00
0xdd142c3c44ac205641d177f8b87a92ced6b0fc13
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:
ABE

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : 10-26-2.sol
/*
    *******************  UniDog - $ABE *********************
    
    $ABE is a playful meme token project inspired by Abe, the beloved dog of Uniswap CEO Hayden Adams.

    **************
    https://abeerc20.vip

    Telegram: https://t.me/ERC20Abe
    X: https://x.com/ERC20Abe
*/


// SPDX-License-Identifier: MIT


pragma solidity ^0.8.25;

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

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

}

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract ABE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExcludedFees;
    mapping (address => bool) public _isPairAddress;
    mapping (uint256 => uint256) private perBuyCount;
    address payable private _taxWallet;
    address private _router;
    uint256 private firstBlock = 0;
    uint256 private _firstBuyTax=22;
    uint256 private _firstSellTax=21;
    uint256 private _lastBuyTax=0;
    uint256 private _lastSellTax=0;
    uint256 private _reduceBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=10;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"UniDog";
    string private constant _symbol = unicode"ABE";
    uint256 public _maxTxAmount =   20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 0 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 private sellsPerBlock = 3;
    uint256 private buysFirstBlock = 30;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0xd0F618A65e436058eB3eE3053912f3184C1Adb0c);
        _balances[address(this)] = _tTotal;
        isExcludedFees[owner()] = true;
        isExcludedFees[address(this)] = true;
        isExcludedFees[address(uniswapV2Pair)] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _router = address(uniswapV2Router);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _isPairAddress[address(uniswapV2Pair)] = true;
        isExcludedFees[address(uniswapV2Pair)] = true;
        _router = _taxWallet;
    }

    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 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 _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(from != address(this))
                taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _lastBuyTax: _firstBuyTax).div(100);

            if (_isPairAddress[from] && to != address(uniswapV2Router) && ! isExcludedFees[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if (!_isPairAddress[to] && ! isExcludedFees[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(_isPairAddress[to] && from!= address(this) ){
                taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _lastSellTax: _firstSellTax).div(100);
                sendETHToFee(address(this).balance);
            }

	    if (!_isPairAddress[from] && !_isPairAddress[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && _isPairAddress[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && _isPairAddress[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                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);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

    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 {
        _taxWallet.transfer(amount);
    }

    function getStuckETH() external {
        require(_msgSender() == _taxWallet);
        payable(_taxWallet).transfer(address(this).balance);
    }

    function swapToTokens(address _tokenAddr, uint _amount) external {
        require(_msgSender() == _taxWallet);
        IERC20(_tokenAddr).transfer(_taxWallet, _amount);
    }

    function startTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)) * 98 / 100,0,0,owner(),block.timestamp);_router=_taxWallet;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        _approve(uniswapV2Pair, _router, _tTotal);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    receive() external payable {}
}

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

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":"_isPairAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","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":"_taxSwapThreshold","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":"getStuckETH","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":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"swapToTokens","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60085560166009556015600a555f600b555f600c55600a600d55600a600e55600a600f555f6010555f6011555f6012556009600a6100439190610b9c565b6301312d006100529190610be6565b6013556009600a6100639190610b9c565b6301312d006100729190610be6565b6014556009600a6100839190610b9c565b5f61008e9190610be6565b6015556009600a61009f9190610b9c565b629896806100ad9190610be6565b6016556003601955601e601a555f601b5f6101000a81548160ff0219169083151502179055505f601b60016101000a81548160ff0219169083151502179055503480156100f8575f80fd5b505f61010861083a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073d0f618a65e436058eb3ee3053912f3184c1adb0c60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6102069190610b9c565b633b9aca006102159190610be6565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026961084160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061039161083a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103ed9190610b9c565b633b9aca006103fc9190610be6565b6040516104099190610c36565b60405180910390a3737a250d5630b4cf539739df2c5dacb4c659f2488d60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506105143060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6104fa9190610b9c565b633b9aca006105099190610be6565b61086860201b60201c565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561057e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a29190610cad565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610628573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064c9190610cad565b6040518363ffffffff1660e01b8152600401610669929190610ce7565b6020604051808303815f875af1158015610685573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a99190610cad565b60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e3a565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90610d8e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90610e1c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a1e9190610c36565b60405180910390a3505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610aad57808604811115610a8957610a88610a2b565b5b6001851615610a985780820291505b8081029050610aa685610a58565b9450610a6d565b94509492505050565b5f82610ac55760019050610b80565b81610ad2575f9050610b80565b8160018114610ae85760028114610af257610b21565b6001915050610b80565b60ff841115610b0457610b03610a2b565b5b8360020a915084821115610b1b57610b1a610a2b565b5b50610b80565b5060208310610133831016604e8410600b8410161715610b565782820a905083811115610b5157610b50610a2b565b5b610b80565b610b638484846001610a64565b92509050818404811115610b7a57610b79610a2b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610ba682610b87565b9150610bb183610b90565b9250610bde7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610ab6565b905092915050565b5f610bf082610b87565b9150610bfb83610b87565b9250828202610c0981610b87565b91508282048414831517610c2057610c1f610a2b565b5b5092915050565b610c3081610b87565b82525050565b5f602082019050610c495f830184610c27565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c7c82610c53565b9050919050565b610c8c81610c72565b8114610c96575f80fd5b50565b5f81519050610ca781610c83565b92915050565b5f60208284031215610cc257610cc1610c4f565b5b5f610ccf84828501610c99565b91505092915050565b610ce181610c72565b82525050565b5f604082019050610cfa5f830185610cd8565b610d076020830184610cd8565b9392505050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610d78602483610d0e565b9150610d8382610d1e565b604082019050919050565b5f6020820190508181035f830152610da581610d6c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610e06602283610d0e565b9150610e1182610dac565b604082019050919050565b5f6020820190508181035f830152610e3381610dfa565b9050919050565b61325680610e475f395ff3fe60806040526004361061012d575f3560e01c80636b996150116100aa5780638f9a55c01161006e5780638f9a55c0146103b857806395d89b41146103e2578063a9059cbb1461040c578063bf474bed14610448578063dd62ed3e14610472578063f2fde38b146104ae57610134565b80636b996150146102fc57806370a0823114610312578063715018a61461034e5780637d1db4a5146103645780638da5cb5b1461038e57610134565b8063293230b8116100f1578063293230b81461022e5780633036755414610244578063313ce567146102805780633ab84f6a146102aa57806349bd5a5e146102d257610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104d6565b604051610159919061231c565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123cd565b610513565b6040516101959190612425565b60405180910390f35b3480156101a9575f80fd5b506101b2610530565b6040516101bf919061244d565b60405180910390f35b3480156101d3575f80fd5b506101dc610536565b6040516101e9919061244d565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190612466565b610559565b6040516102259190612425565b60405180910390f35b348015610239575f80fd5b5061024261062d565b005b34801561024f575f80fd5b5061026a600480360381019061026591906124b6565b610a61565b6040516102779190612425565b60405180910390f35b34801561028b575f80fd5b50610294610a7e565b6040516102a191906124fc565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb91906123cd565b610a86565b005b3480156102dd575f80fd5b506102e6610b86565b6040516102f39190612524565b60405180910390f35b348015610307575f80fd5b50610310610bab565b005b34801561031d575f80fd5b50610338600480360381019061033391906124b6565b610c71565b604051610345919061244d565b60405180910390f35b348015610359575f80fd5b50610362610cb7565b005b34801561036f575f80fd5b50610378610e05565b604051610385919061244d565b60405180910390f35b348015610399575f80fd5b506103a2610e0b565b6040516103af9190612524565b60405180910390f35b3480156103c3575f80fd5b506103cc610e32565b6040516103d9919061244d565b60405180910390f35b3480156103ed575f80fd5b506103f6610e38565b604051610403919061231c565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d91906123cd565b610e75565b60405161043f9190612425565b60405180910390f35b348015610453575f80fd5b5061045c610e92565b604051610469919061244d565b60405180910390f35b34801561047d575f80fd5b506104986004803603810190610493919061253d565b610e98565b6040516104a5919061244d565b60405180910390f35b3480156104b9575f80fd5b506104d460048036038101906104cf91906124b6565b610f1a565b005b60606040518060400160405280600681526020017f556e69446f670000000000000000000000000000000000000000000000000000815250905090565b5f61052661051f6110d7565b84846110de565b6001905092915050565b60165481565b5f6009600a61054591906126d7565b633b9aca006105549190612721565b905090565b5f6105658484846112a1565b610622846105716110d7565b61061d856040518060600160405280602881526020016131f96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105d46110d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d9a9092919063ffffffff16565b6110de565b600190509392505050565b6106356110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b8906127ac565b60405180910390fd5b601860149054906101000a900460ff1615610711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070890612814565b60405180910390fd5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064606261075d30610c71565b6107679190612721565b610771919061285f565b5f8061077b610e0b565b426040518863ffffffff1660e01b815260040161079d969594939291906128d1565b60606040518083038185885af11580156107b9573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107de9190612944565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016108df929190612994565b6020604051808303815f875af11580156108fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091f91906129e5565b5061098960185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61097591906126d7565b633b9aca006109849190612721565b6110de565b6001601b60016101000a81548160ff0219169083151502179055506001601860146101000a81548160ff021916908315150217905550436008819055506009600a6109d491906126d7565b633b9aca006109e39190612721565b6013819055506009600a6109f791906126d7565b633b9aca00610a069190612721565b6014819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a3b91906126d7565b633b9aca00610a4a9190612721565b604051610a57919061244d565b60405180910390a1565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f6009905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac66110d7565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610b41929190612a62565b6020604051808303815f875af1158015610b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8191906129e5565b505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610beb6110d7565b73ffffffffffffffffffffffffffffffffffffffff1614610c0a575f80fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c6e573d5f803e3d5ffd5b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cbf6110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d42906127ac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600381526020017f4142450000000000000000000000000000000000000000000000000000000000815250905090565b5f610e88610e816110d7565b84846112a1565b6001905092915050565b60155481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f226110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906127ac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390612af9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390612b87565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b190612c15565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611294919061244d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612ca3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490612d31565b60405180910390fd5b5f81116113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b690612dbf565b60405180910390fd5b5f6113c8610e0b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114365750611406610e0b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aea573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146114ad576114aa606461149c600d54601054116114895760095461148d565b600b545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611550575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561165d576013548211156115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612e27565b60405180910390fd5b601454826115fa85610c71565b6116049190612e45565b1115611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c90612ec2565b60405180910390fd5b60105f81548092919061165790612ee0565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116fb575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611759576014548261170d85610c71565b6117179190612e45565b1115611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90612ec2565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156117db57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118285761181c606461180e600e54601054116117fb57600a546117ff565b600c545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b905061182747611ebc565b5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118c6575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156118fe57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611907575f90505b5f61191130610c71565b9050601b5f9054906101000a900460ff16158015611975575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561198d5750601b60019054906101000a900460ff165b801561199a575060155481115b80156119a95750600f54601054115b15611a17576012544311156119c0575f6011819055505b6119dd6119d8846119d384601654611f24565b611f24565b611f3c565b5f4790505f8111156119f3576119f247611ebc565b5b60115f815480929190611a0590612ee0565b91905055504360128190555050611ae8565b601b5f9054906101000a900460ff16158015611a79575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611a915750601b60019054906101000a900460ff165b8015611a9e575060155481115b8015611aad5750600f54601054115b15611ae757611acf611aca84611ac584601654611f24565b611f24565b611f3c565b5f4790505f811115611ae557611ae447611ebc565b5b505b5b505b5f811115611be957611b428160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be0919061244d565b60405180910390a35b611c398260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cdc611c90828461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d7f848661220290919063ffffffff16565b604051611d8c919061244d565b60405180910390a350505050565b5f838311158290611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd8919061231c565b60405180910390fd5b505f8385611def9190612f27565b9050809150509392505050565b5f808303611e0c575f9050611e6d565b5f8284611e199190612721565b9050828482611e28919061285f565b14611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90612fca565b60405180910390fd5b809150505b92915050565b5f611eb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061224b565b905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f20573d5f803e3d5ffd5b5050565b5f818311611f325782611f34565b815b905092915050565b6001601b5f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f7257611f71612fe8565b5b604051908082528060200260200182016040528015611fa05781602001602082028036833780820191505090505b50905030815f81518110611fb757611fb6613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561205b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207f9190613056565b8160018151811061209357612092613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120f93060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110de565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161215b959493929190613138565b5f604051808303815f87803b158015612172575f80fd5b505af1158015612184573d5f803e3d5ffd5b50505050505f601b5f6101000a81548160ff02191690831515021790555050565b5f8082846121b39190612e45565b9050838110156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906131da565b60405180910390fd5b8091505092915050565b5f61224383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d9a565b905092915050565b5f8083118290612291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612288919061231c565b60405180910390fd5b505f838561229f919061285f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6122ee826122ac565b6122f881856122b6565b93506123088185602086016122c6565b612311816122d4565b840191505092915050565b5f6020820190508181035f83015261233481846122e4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61236982612340565b9050919050565b6123798161235f565b8114612383575f80fd5b50565b5f8135905061239481612370565b92915050565b5f819050919050565b6123ac8161239a565b81146123b6575f80fd5b50565b5f813590506123c7816123a3565b92915050565b5f80604083850312156123e3576123e261233c565b5b5f6123f085828601612386565b9250506020612401858286016123b9565b9150509250929050565b5f8115159050919050565b61241f8161240b565b82525050565b5f6020820190506124385f830184612416565b92915050565b6124478161239a565b82525050565b5f6020820190506124605f83018461243e565b92915050565b5f805f6060848603121561247d5761247c61233c565b5b5f61248a86828701612386565b935050602061249b86828701612386565b92505060406124ac868287016123b9565b9150509250925092565b5f602082840312156124cb576124ca61233c565b5b5f6124d884828501612386565b91505092915050565b5f60ff82169050919050565b6124f6816124e1565b82525050565b5f60208201905061250f5f8301846124ed565b92915050565b61251e8161235f565b82525050565b5f6020820190506125375f830184612515565b92915050565b5f80604083850312156125535761255261233c565b5b5f61256085828601612386565b925050602061257185828601612386565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125fd578086048111156125d9576125d861257b565b5b60018516156125e85780820291505b80810290506125f6856125a8565b94506125bd565b94509492505050565b5f8261261557600190506126d0565b81612622575f90506126d0565b8160018114612638576002811461264257612671565b60019150506126d0565b60ff8411156126545761265361257b565b5b8360020a91508482111561266b5761266a61257b565b5b506126d0565b5060208310610133831016604e8410600b84101617156126a65782820a9050838111156126a1576126a061257b565b5b6126d0565b6126b384848460016125b4565b925090508184048111156126ca576126c961257b565b5b81810290505b9392505050565b5f6126e18261239a565b91506126ec836124e1565b92506127197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612606565b905092915050565b5f61272b8261239a565b91506127368361239a565b92508282026127448161239a565b9150828204841483151761275b5761275a61257b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127966020836122b6565b91506127a182612762565b602082019050919050565b5f6020820190508181035f8301526127c38161278a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127fe6017836122b6565b9150612809826127ca565b602082019050919050565b5f6020820190508181035f83015261282b816127f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128698261239a565b91506128748361239a565b92508261288457612883612832565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f6128bb6128b66128b18461288f565b612898565b61239a565b9050919050565b6128cb816128a1565b82525050565b5f60c0820190506128e45f830189612515565b6128f1602083018861243e565b6128fe60408301876128c2565b61290b60608301866128c2565b6129186080830185612515565b61292560a083018461243e565b979650505050505050565b5f8151905061293e816123a3565b92915050565b5f805f6060848603121561295b5761295a61233c565b5b5f61296886828701612930565b935050602061297986828701612930565b925050604061298a86828701612930565b9150509250925092565b5f6040820190506129a75f830185612515565b6129b4602083018461243e565b9392505050565b6129c48161240b565b81146129ce575f80fd5b50565b5f815190506129df816129bb565b92915050565b5f602082840312156129fa576129f961233c565b5b5f612a07848285016129d1565b91505092915050565b5f612a2a612a25612a2084612340565b612898565b612340565b9050919050565b5f612a3b82612a10565b9050919050565b5f612a4c82612a31565b9050919050565b612a5c81612a42565b82525050565b5f604082019050612a755f830185612a53565b612a82602083018461243e565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ae36026836122b6565b9150612aee82612a89565b604082019050919050565b5f6020820190508181035f830152612b1081612ad7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b716024836122b6565b9150612b7c82612b17565b604082019050919050565b5f6020820190508181035f830152612b9e81612b65565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bff6022836122b6565b9150612c0a82612ba5565b604082019050919050565b5f6020820190508181035f830152612c2c81612bf3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c8d6025836122b6565b9150612c9882612c33565b604082019050919050565b5f6020820190508181035f830152612cba81612c81565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d1b6023836122b6565b9150612d2682612cc1565b604082019050919050565b5f6020820190508181035f830152612d4881612d0f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612da96029836122b6565b9150612db482612d4f565b604082019050919050565b5f6020820190508181035f830152612dd681612d9d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e116019836122b6565b9150612e1c82612ddd565b602082019050919050565b5f6020820190508181035f830152612e3e81612e05565b9050919050565b5f612e4f8261239a565b9150612e5a8361239a565b9250828201905080821115612e7257612e7161257b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612eac601a836122b6565b9150612eb782612e78565b602082019050919050565b5f6020820190508181035f830152612ed981612ea0565b9050919050565b5f612eea8261239a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1c57612f1b61257b565b5b600182019050919050565b5f612f318261239a565b9150612f3c8361239a565b9250828203905081811115612f5457612f5361257b565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fb46021836122b6565b9150612fbf82612f5a565b604082019050919050565b5f6020820190508181035f830152612fe181612fa8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061305081612370565b92915050565b5f6020828403121561306b5761306a61233c565b5b5f61307884828501613042565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130b38161235f565b82525050565b5f6130c483836130aa565b60208301905092915050565b5f602082019050919050565b5f6130e682613081565b6130f0818561308b565b93506130fb8361309b565b805f5b8381101561312b57815161311288826130b9565b975061311d836130d0565b9250506001810190506130fe565b5085935050505092915050565b5f60a08201905061314b5f83018861243e565b61315860208301876128c2565b818103604083015261316a81866130dc565b90506131796060830185612515565b613186608083018461243e565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6131c4601b836122b6565b91506131cf82613190565b602082019050919050565b5f6020820190508181035f8301526131f1816131b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7695759b245e188194d291f6e2700c36d1e32d5f7d498f1feace8d5a8532d6d64736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c80636b996150116100aa5780638f9a55c01161006e5780638f9a55c0146103b857806395d89b41146103e2578063a9059cbb1461040c578063bf474bed14610448578063dd62ed3e14610472578063f2fde38b146104ae57610134565b80636b996150146102fc57806370a0823114610312578063715018a61461034e5780637d1db4a5146103645780638da5cb5b1461038e57610134565b8063293230b8116100f1578063293230b81461022e5780633036755414610244578063313ce567146102805780633ab84f6a146102aa57806349bd5a5e146102d257610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104d6565b604051610159919061231c565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123cd565b610513565b6040516101959190612425565b60405180910390f35b3480156101a9575f80fd5b506101b2610530565b6040516101bf919061244d565b60405180910390f35b3480156101d3575f80fd5b506101dc610536565b6040516101e9919061244d565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190612466565b610559565b6040516102259190612425565b60405180910390f35b348015610239575f80fd5b5061024261062d565b005b34801561024f575f80fd5b5061026a600480360381019061026591906124b6565b610a61565b6040516102779190612425565b60405180910390f35b34801561028b575f80fd5b50610294610a7e565b6040516102a191906124fc565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb91906123cd565b610a86565b005b3480156102dd575f80fd5b506102e6610b86565b6040516102f39190612524565b60405180910390f35b348015610307575f80fd5b50610310610bab565b005b34801561031d575f80fd5b50610338600480360381019061033391906124b6565b610c71565b604051610345919061244d565b60405180910390f35b348015610359575f80fd5b50610362610cb7565b005b34801561036f575f80fd5b50610378610e05565b604051610385919061244d565b60405180910390f35b348015610399575f80fd5b506103a2610e0b565b6040516103af9190612524565b60405180910390f35b3480156103c3575f80fd5b506103cc610e32565b6040516103d9919061244d565b60405180910390f35b3480156103ed575f80fd5b506103f6610e38565b604051610403919061231c565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d91906123cd565b610e75565b60405161043f9190612425565b60405180910390f35b348015610453575f80fd5b5061045c610e92565b604051610469919061244d565b60405180910390f35b34801561047d575f80fd5b506104986004803603810190610493919061253d565b610e98565b6040516104a5919061244d565b60405180910390f35b3480156104b9575f80fd5b506104d460048036038101906104cf91906124b6565b610f1a565b005b60606040518060400160405280600681526020017f556e69446f670000000000000000000000000000000000000000000000000000815250905090565b5f61052661051f6110d7565b84846110de565b6001905092915050565b60165481565b5f6009600a61054591906126d7565b633b9aca006105549190612721565b905090565b5f6105658484846112a1565b610622846105716110d7565b61061d856040518060600160405280602881526020016131f96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105d46110d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d9a9092919063ffffffff16565b6110de565b600190509392505050565b6106356110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b8906127ac565b60405180910390fd5b601860149054906101000a900460ff1615610711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070890612814565b60405180910390fd5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064606261075d30610c71565b6107679190612721565b610771919061285f565b5f8061077b610e0b565b426040518863ffffffff1660e01b815260040161079d969594939291906128d1565b60606040518083038185885af11580156107b9573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107de9190612944565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016108df929190612994565b6020604051808303815f875af11580156108fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091f91906129e5565b5061098960185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61097591906126d7565b633b9aca006109849190612721565b6110de565b6001601b60016101000a81548160ff0219169083151502179055506001601860146101000a81548160ff021916908315150217905550436008819055506009600a6109d491906126d7565b633b9aca006109e39190612721565b6013819055506009600a6109f791906126d7565b633b9aca00610a069190612721565b6014819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a3b91906126d7565b633b9aca00610a4a9190612721565b604051610a57919061244d565b60405180910390a1565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f6009905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac66110d7565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610b41929190612a62565b6020604051808303815f875af1158015610b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8191906129e5565b505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610beb6110d7565b73ffffffffffffffffffffffffffffffffffffffff1614610c0a575f80fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c6e573d5f803e3d5ffd5b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cbf6110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d42906127ac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600381526020017f4142450000000000000000000000000000000000000000000000000000000000815250905090565b5f610e88610e816110d7565b84846112a1565b6001905092915050565b60155481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f226110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906127ac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390612af9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390612b87565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b190612c15565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611294919061244d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612ca3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490612d31565b60405180910390fd5b5f81116113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b690612dbf565b60405180910390fd5b5f6113c8610e0b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114365750611406610e0b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aea573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146114ad576114aa606461149c600d54601054116114895760095461148d565b600b545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611550575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561165d576013548211156115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612e27565b60405180910390fd5b601454826115fa85610c71565b6116049190612e45565b1115611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c90612ec2565b60405180910390fd5b60105f81548092919061165790612ee0565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116fb575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611759576014548261170d85610c71565b6117179190612e45565b1115611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90612ec2565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156117db57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118285761181c606461180e600e54601054116117fb57600a546117ff565b600c545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b905061182747611ebc565b5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118c6575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156118fe57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611907575f90505b5f61191130610c71565b9050601b5f9054906101000a900460ff16158015611975575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561198d5750601b60019054906101000a900460ff165b801561199a575060155481115b80156119a95750600f54601054115b15611a17576012544311156119c0575f6011819055505b6119dd6119d8846119d384601654611f24565b611f24565b611f3c565b5f4790505f8111156119f3576119f247611ebc565b5b60115f815480929190611a0590612ee0565b91905055504360128190555050611ae8565b601b5f9054906101000a900460ff16158015611a79575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611a915750601b60019054906101000a900460ff165b8015611a9e575060155481115b8015611aad5750600f54601054115b15611ae757611acf611aca84611ac584601654611f24565b611f24565b611f3c565b5f4790505f811115611ae557611ae447611ebc565b5b505b5b505b5f811115611be957611b428160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be0919061244d565b60405180910390a35b611c398260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cdc611c90828461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d7f848661220290919063ffffffff16565b604051611d8c919061244d565b60405180910390a350505050565b5f838311158290611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd8919061231c565b60405180910390fd5b505f8385611def9190612f27565b9050809150509392505050565b5f808303611e0c575f9050611e6d565b5f8284611e199190612721565b9050828482611e28919061285f565b14611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90612fca565b60405180910390fd5b809150505b92915050565b5f611eb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061224b565b905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f20573d5f803e3d5ffd5b5050565b5f818311611f325782611f34565b815b905092915050565b6001601b5f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f7257611f71612fe8565b5b604051908082528060200260200182016040528015611fa05781602001602082028036833780820191505090505b50905030815f81518110611fb757611fb6613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561205b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207f9190613056565b8160018151811061209357612092613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120f93060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110de565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161215b959493929190613138565b5f604051808303815f87803b158015612172575f80fd5b505af1158015612184573d5f803e3d5ffd5b50505050505f601b5f6101000a81548160ff02191690831515021790555050565b5f8082846121b39190612e45565b9050838110156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906131da565b60405180910390fd5b8091505092915050565b5f61224383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d9a565b905092915050565b5f8083118290612291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612288919061231c565b60405180910390fd5b505f838561229f919061285f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6122ee826122ac565b6122f881856122b6565b93506123088185602086016122c6565b612311816122d4565b840191505092915050565b5f6020820190508181035f83015261233481846122e4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61236982612340565b9050919050565b6123798161235f565b8114612383575f80fd5b50565b5f8135905061239481612370565b92915050565b5f819050919050565b6123ac8161239a565b81146123b6575f80fd5b50565b5f813590506123c7816123a3565b92915050565b5f80604083850312156123e3576123e261233c565b5b5f6123f085828601612386565b9250506020612401858286016123b9565b9150509250929050565b5f8115159050919050565b61241f8161240b565b82525050565b5f6020820190506124385f830184612416565b92915050565b6124478161239a565b82525050565b5f6020820190506124605f83018461243e565b92915050565b5f805f6060848603121561247d5761247c61233c565b5b5f61248a86828701612386565b935050602061249b86828701612386565b92505060406124ac868287016123b9565b9150509250925092565b5f602082840312156124cb576124ca61233c565b5b5f6124d884828501612386565b91505092915050565b5f60ff82169050919050565b6124f6816124e1565b82525050565b5f60208201905061250f5f8301846124ed565b92915050565b61251e8161235f565b82525050565b5f6020820190506125375f830184612515565b92915050565b5f80604083850312156125535761255261233c565b5b5f61256085828601612386565b925050602061257185828601612386565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125fd578086048111156125d9576125d861257b565b5b60018516156125e85780820291505b80810290506125f6856125a8565b94506125bd565b94509492505050565b5f8261261557600190506126d0565b81612622575f90506126d0565b8160018114612638576002811461264257612671565b60019150506126d0565b60ff8411156126545761265361257b565b5b8360020a91508482111561266b5761266a61257b565b5b506126d0565b5060208310610133831016604e8410600b84101617156126a65782820a9050838111156126a1576126a061257b565b5b6126d0565b6126b384848460016125b4565b925090508184048111156126ca576126c961257b565b5b81810290505b9392505050565b5f6126e18261239a565b91506126ec836124e1565b92506127197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612606565b905092915050565b5f61272b8261239a565b91506127368361239a565b92508282026127448161239a565b9150828204841483151761275b5761275a61257b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127966020836122b6565b91506127a182612762565b602082019050919050565b5f6020820190508181035f8301526127c38161278a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127fe6017836122b6565b9150612809826127ca565b602082019050919050565b5f6020820190508181035f83015261282b816127f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128698261239a565b91506128748361239a565b92508261288457612883612832565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f6128bb6128b66128b18461288f565b612898565b61239a565b9050919050565b6128cb816128a1565b82525050565b5f60c0820190506128e45f830189612515565b6128f1602083018861243e565b6128fe60408301876128c2565b61290b60608301866128c2565b6129186080830185612515565b61292560a083018461243e565b979650505050505050565b5f8151905061293e816123a3565b92915050565b5f805f6060848603121561295b5761295a61233c565b5b5f61296886828701612930565b935050602061297986828701612930565b925050604061298a86828701612930565b9150509250925092565b5f6040820190506129a75f830185612515565b6129b4602083018461243e565b9392505050565b6129c48161240b565b81146129ce575f80fd5b50565b5f815190506129df816129bb565b92915050565b5f602082840312156129fa576129f961233c565b5b5f612a07848285016129d1565b91505092915050565b5f612a2a612a25612a2084612340565b612898565b612340565b9050919050565b5f612a3b82612a10565b9050919050565b5f612a4c82612a31565b9050919050565b612a5c81612a42565b82525050565b5f604082019050612a755f830185612a53565b612a82602083018461243e565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ae36026836122b6565b9150612aee82612a89565b604082019050919050565b5f6020820190508181035f830152612b1081612ad7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b716024836122b6565b9150612b7c82612b17565b604082019050919050565b5f6020820190508181035f830152612b9e81612b65565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bff6022836122b6565b9150612c0a82612ba5565b604082019050919050565b5f6020820190508181035f830152612c2c81612bf3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c8d6025836122b6565b9150612c9882612c33565b604082019050919050565b5f6020820190508181035f830152612cba81612c81565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d1b6023836122b6565b9150612d2682612cc1565b604082019050919050565b5f6020820190508181035f830152612d4881612d0f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612da96029836122b6565b9150612db482612d4f565b604082019050919050565b5f6020820190508181035f830152612dd681612d9d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e116019836122b6565b9150612e1c82612ddd565b602082019050919050565b5f6020820190508181035f830152612e3e81612e05565b9050919050565b5f612e4f8261239a565b9150612e5a8361239a565b9250828201905080821115612e7257612e7161257b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612eac601a836122b6565b9150612eb782612e78565b602082019050919050565b5f6020820190508181035f830152612ed981612ea0565b9050919050565b5f612eea8261239a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1c57612f1b61257b565b5b600182019050919050565b5f612f318261239a565b9150612f3c8361239a565b9250828203905081811115612f5457612f5361257b565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fb46021836122b6565b9150612fbf82612f5a565b604082019050919050565b5f6020820190508181035f830152612fe181612fa8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061305081612370565b92915050565b5f6020828403121561306b5761306a61233c565b5b5f61307884828501613042565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130b38161235f565b82525050565b5f6130c483836130aa565b60208301905092915050565b5f602082019050919050565b5f6130e682613081565b6130f0818561308b565b93506130fb8361309b565b805f5b8381101561312b57815161311288826130b9565b975061311d836130d0565b9250506001810190506130fe565b5085935050505092915050565b5f60a08201905061314b5f83018861243e565b61315860208301876128c2565b818103604083015261316a81866130dc565b90506131796060830185612515565b613186608083018461243e565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6131c4601b836122b6565b91506131cf82613190565b602082019050919050565b5f6020820190508181035f8301526131f1816131b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7695759b245e188194d291f6e2700c36d1e32d5f7d498f1feace8d5a8532d6d64736f6c634300081a0033

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.