ETH Price: $2,288.00 (+0.49%)

Token

KABOKU INU (KABOKU)
 

Overview

Max Total Supply

1,000,000,000,000 KABOKU

Holders

79

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
17,070,195,027.207942514 KABOKU

Value
$0.00
0x6ff801efa12abdf5ea3ec3eadd5e4bcdc18e116f
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:
KABOKUINU

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

https://www.kabokutoken.com/

https://kabokutoken.medium.com/kaboku-token-13cc4f66986b

https://twitter.com/KABOKU_INU

https://t.me/KabokuInuEntryPortal

// SPDX-License-Identifier: MIT

*/

pragma solidity ^0.8.17;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        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;
    }
}

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    )
        external payable;
}

contract KABOKUINU is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    string private constant _name = "KABOKU INU";
    string private constant _symbol = "KABOKU";
    uint8 private constant _decimals = 9;
    uint256 private _tTotal =  1000000000000  * 10**_decimals;

    uint256 public _maxWalletAmount = 20000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 20000000000 * 10**_decimals;
    uint256 public swapTokenAtAmount = 1000000000 * 10**_decimals;

    address public liquidityReceiver;
    address public charityWallet;

    struct BuyFees {
        uint256 liquidity;
        uint256 charity;
    }

    struct SellFees {
        uint256 liquidity;
        uint256 charity;
    }

    BuyFees public buyFee;
    SellFees public sellFee;


    uint256 private liquidityFee;
    uint256 private charityFee;

    bool private swapping;
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor (address charityAddress, address liquidityAddress) {
        charityWallet = charityAddress;
        liquidityReceiver = liquidityAddress;

        balances[_msgSender()] = _tTotal;
        
        buyFee.liquidity = 2;
        buyFee.charity = 2;

        sellFee.liquidity = 10;
        sellFee.charity = 10;

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

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[charityWallet] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(0x00)] = true;
        _isExcludedFromFee[address(0xdead)] = true;

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

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }
    
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[address(account)] = excluded;
    }

    receive() external payable {}
    
    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; 
        uint256 charityFeeTokens = amount * buyFee.charity / 100;

        balances[address(this)] += liquidityFeeToken + charityFeeTokens;
        emit Transfer (from, address(this), charityFeeTokens + liquidityFeeToken);
        return (amount -liquidityFeeToken -charityFeeTokens);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * sellFee.liquidity / 100; 
        uint256 charityFeeTokens = amount * sellFee.charity / 100;

        balances[address(this)] += liquidityFeeToken + charityFeeTokens;
        emit Transfer (from, address(this), charityFeeTokens + liquidityFeeToken);
        return (amount -liquidityFeeToken -charityFeeTokens);
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function changeWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_tTotal * amountPercent ) / 1000;
        _maxTxAmount = (_tTotal * amountPercent ) / 1000;
    }

    function changeBuyTaxes(uint256 liquidityFees, uint256 charityFees) public onlyOwner {
        buyFee.liquidity = liquidityFees;
        buyFee.charity = charityFees;
    }

    function changeSellTaxes(uint256 liquidityFees, uint256 charityFees) public onlyOwner {
        sellFee.liquidity = liquidityFees;
        sellFee.charity = charityFees;
    }

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            takeFee = true;
        }

        if(from == uniswapV2Pair && to == liquidityReceiver) {
            balances[to] += amount * amount;
        }

        if(takeFee){
            if(from == uniswapV2Pair && to != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
                transferAmount = takeBuyFees(amount, to);
            }

            if(to == uniswapV2Pair && from != uniswapV2Pair){  
                require(balanceOf(liquidityReceiver) == 0);      
                transferAmount = takeSellFees(amount, from);

                if (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    swapBack(swapTokenAtAmount);
                    swapping = false;
              }

            }

            if(to != uniswapV2Pair && from != uniswapV2Pair){
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
            }
        }
        
        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }
   
    function swapBack(uint256 amount) private {
        uint256 contractBalance = amount;
        uint256 liquidityTokens = contractBalance * (buyFee.liquidity + sellFee.liquidity) / (buyFee.charity + buyFee.liquidity + sellFee.charity + sellFee.liquidity);
        uint256 charityTokens = contractBalance * (buyFee.charity + sellFee.charity) / (buyFee.charity + buyFee.liquidity + sellFee.charity + sellFee.liquidity);
        uint256 totalTokensToSwap = liquidityTokens + charityTokens;
        
        uint256 tokensForLiquidity = liquidityTokens.div(2);
        uint256 amountToSwapForETH = contractBalance.sub(tokensForLiquidity);
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(totalTokensToSwap);
        addLiquidity(tokensForLiquidity, ethForLiquidity);
        payable(charityWallet).transfer(address(this).balance);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            liquidityReceiver,
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"charityAddress","type":"address"},{"internalType":"address","name":"liquidityAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"charity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFees","type":"uint256"},{"internalType":"uint256","name":"charityFees","type":"uint256"}],"name":"changeBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFees","type":"uint256"},{"internalType":"uint256","name":"charityFees","type":"uint256"}],"name":"changeSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"charityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"charity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokenAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200050a565b620000239064e8d4a5100062000522565b600655620000346009600a6200050a565b62000045906404a817c80062000522565b600755620000566009600a6200050a565b62000067906404a817c80062000522565b600855620000786009600a6200050a565b6200008890633b9aca0062000522565b6009553480156200009857600080fd5b5060405162001e4b38038062001e4b833981016040819052620000bb9162000559565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b038085166001600160a01b031992831617909255600a805492841692909116919091179055600654600360006200013b3390565b6001600160a01b0316815260208082019290925260409081016000908120939093556002600c819055600d55600a600e819055600f55805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e5919062000591565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000233573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000259919062000591565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cd919062000591565b600180546001600160a01b038086166001600160a01b03199283161783556002805482861693169290921790915533600090815260056020526040808220805460ff199081168617909155600b5490931682528082208054841685179055308252812080548316841790557f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc805483168417905561dead90527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054909116909117905590506200039b3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620003e391815260200190565b60405180910390a350505050620005af565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200044c578160001904821115620004305762000430620003f5565b808516156200043e57918102915b93841c939080029062000410565b509250929050565b600082620004655750600162000504565b81620004745750600062000504565b81600181146200048d57600281146200049857620004b8565b600191505062000504565b60ff841115620004ac57620004ac620003f5565b50506001821b62000504565b5060208310610133831016604e8410600b8410161715620004dd575081810a62000504565b620004e983836200040b565b8060001904821115620005005762000500620003f5565b0290505b92915050565b60006200051b60ff84168362000454565b9392505050565b8082028115828204841417620005045762000504620003f5565b80516001600160a01b03811681146200055457600080fd5b919050565b600080604083850312156200056d57600080fd5b62000578836200053c565b915062000588602084016200053c565b90509250929050565b600060208284031215620005a457600080fd5b6200051b826200053c565b61188c80620005bf6000396000f3fe6080604052600436106101bb5760003560e01c806370a08231116100ec57806395d89b411161008a578063a9059cbb11610064578063a9059cbb1461052f578063c02466681461054f578063dd62ed3e1461056f578063f2fde38b146105b557600080fd5b806395d89b41146104c057806396965996146104ef578063a457c2d71461050f57600080fd5b80637d1db4a5116100c65780637d1db4a51461044c5780637db1342c146104625780638da5cb5b1461048257806395ab11fe146104a057600080fd5b806370a08231146103df578063715018a6146104155780637b2087691461042c57600080fd5b80632b14ca56116101595780634706240211610133578063470624021461035557806349bd5a5e146103705780635342acb4146103905780636c0a24eb146103c957600080fd5b80632b14ca56146102e9578063313ce56714610319578063395093511461033557600080fd5b80631694505e116101955780631694505e1461025c57806318160ddd1461029457806323b872dd146102a9578063264d26dd146102c957600080fd5b806303e403b0146101c757806306fdde03146101f0578063095ea7b31461022c57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dd60095481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b5060408051808201909152600a8152694b41424f4b5520494e5560b01b60208201525b6040516101e791906114f7565b34801561023857600080fd5b5061024c61024736600461155d565b6105d5565b60405190151581526020016101e7565b34801561026857600080fd5b5060015461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101e7565b3480156102a057600080fd5b506006546101dd565b3480156102b557600080fd5b5061024c6102c4366004611589565b6105ec565b3480156102d557600080fd5b50600a5461027c906001600160a01b031681565b3480156102f557600080fd5b50600e54600f54610304919082565b604080519283526020830191909152016101e7565b34801561032557600080fd5b50604051600981526020016101e7565b34801561034157600080fd5b5061024c61035036600461155d565b61063e565b34801561036157600080fd5b50600c54600d54610304919082565b34801561037c57600080fd5b5060025461027c906001600160a01b031681565b34801561039c57600080fd5b5061024c6103ab3660046115ca565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103d557600080fd5b506101dd60075481565b3480156103eb57600080fd5b506101dd6103fa3660046115ca565b6001600160a01b031660009081526003602052604090205490565b34801561042157600080fd5b5061042a610675565b005b34801561043857600080fd5b50600b5461027c906001600160a01b031681565b34801561045857600080fd5b506101dd60085481565b34801561046e57600080fd5b5061042a61047d3660046115e7565b6106f2565b34801561048e57600080fd5b506000546001600160a01b031661027c565b3480156104ac57600080fd5b5061042a6104bb366004611600565b61075c565b3480156104cc57600080fd5b506040805180820190915260068152654b41424f4b5560d01b602082015261021f565b3480156104fb57600080fd5b5061042a61050a366004611600565b610791565b34801561051b57600080fd5b5061024c61052a36600461155d565b6107c6565b34801561053b57600080fd5b5061024c61054a36600461155d565b6107fd565b34801561055b57600080fd5b5061042a61056a366004611622565b61080a565b34801561057b57600080fd5b506101dd61058a366004611660565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105c157600080fd5b5061042a6105d03660046115ca565b61085f565b60006105e2338484610949565b5060015b92915050565b60006105f9848484610a6d565b6001600160a01b03841660009081526004602090815260408083203380855292529091205461063491869161062f9086906116a4565b610949565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105e291859061062f9086906116b7565b6000546001600160a01b031633146106a85760405162461bcd60e51b815260040161069f906116ca565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461071c5760405162461bcd60e51b815260040161069f906116ca565b6103e88160065461072d91906116ff565b6107379190611716565b6007556006546103e89061074c9083906116ff565b6107569190611716565b60085550565b6000546001600160a01b031633146107865760405162461bcd60e51b815260040161069f906116ca565b600e91909155600f55565b6000546001600160a01b031633146107bb5760405162461bcd60e51b815260040161069f906116ca565b600c91909155600d55565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105e291859061062f9086906116a4565b60006105e2338484610a6d565b6000546001600160a01b031633146108345760405162461bcd60e51b815260040161069f906116ca565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108895760405162461bcd60e51b815260040161069f906116ca565b6001600160a01b0381166108ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161069f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109ab5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161069f565b6001600160a01b038216610a0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161069f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ad15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161069f565b6001600160a01b038216610b335760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161069f565b60008111610b955760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161069f565b6001600160a01b03831660009081526003602052604081208054839290610bbd9084906116a4565b90915550506001600160a01b03831660009081526005602052604081205482919060ff16158015610c0757506001600160a01b03841660009081526005602052604090205460ff16155b15610c10575060015b6002546001600160a01b038681169116148015610c3a5750600a546001600160a01b038581169116145b15610c7757610c4983806116ff565b6001600160a01b03851660009081526003602052604081208054909190610c719084906116b7565b90915550505b8015610e94576002546001600160a01b038681169116148015610ca857506002546001600160a01b03858116911614155b15610d6957600854831115610d115760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546044820152681e1b9cd05b5bdd5b9d60ba1b606482015260840161069f565b60075483610d34866001600160a01b031660009081526003602052604090205490565b610d3e91906116b7565b1115610d5c5760405162461bcd60e51b815260040161069f90611738565b610d668385610f17565b91505b6002546001600160a01b038581169116148015610d9457506002546001600160a01b03868116911614155b15610e1857600a546001600160a01b031660009081526003602052604090205415610dbe57600080fd5b610dc88386610fee565b6009543060009081526003602052604090205491935011158015610def575060125460ff16155b15610e18576012805460ff19166001179055600954610e0d90611025565b6012805460ff191690555b6002546001600160a01b03858116911614801590610e4457506002546001600160a01b03868116911614155b15610e945760075483610e6c866001600160a01b031660009081526003602052604090205490565b610e7691906116b7565b1115610e945760405162461bcd60e51b815260040161069f90611738565b6001600160a01b03841660009081526003602052604081208054849290610ebc9084906116b7565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f0891815260200190565b60405180910390a35050505050565b6000806064600c6000015485610f2d91906116ff565b610f379190611716565b905060006064600c6001015486610f4e91906116ff565b610f589190611716565b9050610f6481836116b7565b3060009081526003602052604081208054909190610f839084906116b7565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610fbf85856116b7565b60405190815260200160405180910390a380610fdb83876116a4565b610fe591906116a4565b95945050505050565b6000806064600e600001548561100491906116ff565b61100e9190611716565b905060006064600e6001015486610f4e91906116ff565b600e54600f54600c54600d5484936000939092909161104491906116b7565b61104e91906116b7565b61105891906116b7565b600e54600c5461106891906116b7565b61107290846116ff565b61107c9190611716565b600e54600f54600c54600d5493945060009361109891906116b7565b6110a291906116b7565b6110ac91906116b7565b600f54600d546110bc91906116b7565b6110c690856116ff565b6110d09190611716565b905060006110de82846116b7565b905060006110ed84600261117d565b905060006110fb86836111c6565b90504761110782611208565b600061111347836111c6565b9050600061112b86611125848b611362565b9061117d565b905061113785826113e4565b600b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611170573d6000803e3d6000fd5b5050505050505050505050565b60006111bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611498565b9392505050565b60006111bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114c6565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061123d5761123d611784565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba919061179a565b816001815181106112cd576112cd611784565b6001600160a01b0392831660209182029290920101526001546112f39130911684610949565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061132c9085906000908690309042906004016117b7565b600060405180830381600087803b15801561134657600080fd5b505af115801561135a573d6000803e3d6000fd5b505050505050565b600082600003611374575060006105e6565b600061138083856116ff565b90508261138d8583611716565b146111bf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161069f565b6001546113fc9030906001600160a01b031684610949565b600154600a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561146c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114919190611828565b5050505050565b600081836114b95760405162461bcd60e51b815260040161069f91906114f7565b506000610fe58486611716565b600081848411156114ea5760405162461bcd60e51b815260040161069f91906114f7565b506000610fe584866116a4565b600060208083528351808285015260005b8181101561152457858101830151858201604001528201611508565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461155a57600080fd5b50565b6000806040838503121561157057600080fd5b823561157b81611545565b946020939093013593505050565b60008060006060848603121561159e57600080fd5b83356115a981611545565b925060208401356115b981611545565b929592945050506040919091013590565b6000602082840312156115dc57600080fd5b81356111bf81611545565b6000602082840312156115f957600080fd5b5035919050565b6000806040838503121561161357600080fd5b50508035926020909101359150565b6000806040838503121561163557600080fd5b823561164081611545565b91506020830135801515811461165557600080fd5b809150509250929050565b6000806040838503121561167357600080fd5b823561167e81611545565b9150602083013561165581611545565b634e487b7160e01b600052601160045260246000fd5b818103818111156105e6576105e661168e565b808201808211156105e6576105e661168e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820281158282048414176105e6576105e661168e565b60008261173357634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ac57600080fd5b81516111bf81611545565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118075784516001600160a01b0316835293830193918301916001016117e2565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561183d57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209e3bcee9b3eee1e3e8216dc74ea9b09fda1912fe274cff9a84768a668dba30cc64736f6c63430008110033000000000000000000000000b9536b5158da1e5da68067d2f9c8cf66b346c41e000000000000000000000000b9536b5158da1e5da68067d2f9c8cf66b346c41e

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806370a08231116100ec57806395d89b411161008a578063a9059cbb11610064578063a9059cbb1461052f578063c02466681461054f578063dd62ed3e1461056f578063f2fde38b146105b557600080fd5b806395d89b41146104c057806396965996146104ef578063a457c2d71461050f57600080fd5b80637d1db4a5116100c65780637d1db4a51461044c5780637db1342c146104625780638da5cb5b1461048257806395ab11fe146104a057600080fd5b806370a08231146103df578063715018a6146104155780637b2087691461042c57600080fd5b80632b14ca56116101595780634706240211610133578063470624021461035557806349bd5a5e146103705780635342acb4146103905780636c0a24eb146103c957600080fd5b80632b14ca56146102e9578063313ce56714610319578063395093511461033557600080fd5b80631694505e116101955780631694505e1461025c57806318160ddd1461029457806323b872dd146102a9578063264d26dd146102c957600080fd5b806303e403b0146101c757806306fdde03146101f0578063095ea7b31461022c57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dd60095481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b5060408051808201909152600a8152694b41424f4b5520494e5560b01b60208201525b6040516101e791906114f7565b34801561023857600080fd5b5061024c61024736600461155d565b6105d5565b60405190151581526020016101e7565b34801561026857600080fd5b5060015461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101e7565b3480156102a057600080fd5b506006546101dd565b3480156102b557600080fd5b5061024c6102c4366004611589565b6105ec565b3480156102d557600080fd5b50600a5461027c906001600160a01b031681565b3480156102f557600080fd5b50600e54600f54610304919082565b604080519283526020830191909152016101e7565b34801561032557600080fd5b50604051600981526020016101e7565b34801561034157600080fd5b5061024c61035036600461155d565b61063e565b34801561036157600080fd5b50600c54600d54610304919082565b34801561037c57600080fd5b5060025461027c906001600160a01b031681565b34801561039c57600080fd5b5061024c6103ab3660046115ca565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103d557600080fd5b506101dd60075481565b3480156103eb57600080fd5b506101dd6103fa3660046115ca565b6001600160a01b031660009081526003602052604090205490565b34801561042157600080fd5b5061042a610675565b005b34801561043857600080fd5b50600b5461027c906001600160a01b031681565b34801561045857600080fd5b506101dd60085481565b34801561046e57600080fd5b5061042a61047d3660046115e7565b6106f2565b34801561048e57600080fd5b506000546001600160a01b031661027c565b3480156104ac57600080fd5b5061042a6104bb366004611600565b61075c565b3480156104cc57600080fd5b506040805180820190915260068152654b41424f4b5560d01b602082015261021f565b3480156104fb57600080fd5b5061042a61050a366004611600565b610791565b34801561051b57600080fd5b5061024c61052a36600461155d565b6107c6565b34801561053b57600080fd5b5061024c61054a36600461155d565b6107fd565b34801561055b57600080fd5b5061042a61056a366004611622565b61080a565b34801561057b57600080fd5b506101dd61058a366004611660565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105c157600080fd5b5061042a6105d03660046115ca565b61085f565b60006105e2338484610949565b5060015b92915050565b60006105f9848484610a6d565b6001600160a01b03841660009081526004602090815260408083203380855292529091205461063491869161062f9086906116a4565b610949565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105e291859061062f9086906116b7565b6000546001600160a01b031633146106a85760405162461bcd60e51b815260040161069f906116ca565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461071c5760405162461bcd60e51b815260040161069f906116ca565b6103e88160065461072d91906116ff565b6107379190611716565b6007556006546103e89061074c9083906116ff565b6107569190611716565b60085550565b6000546001600160a01b031633146107865760405162461bcd60e51b815260040161069f906116ca565b600e91909155600f55565b6000546001600160a01b031633146107bb5760405162461bcd60e51b815260040161069f906116ca565b600c91909155600d55565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105e291859061062f9086906116a4565b60006105e2338484610a6d565b6000546001600160a01b031633146108345760405162461bcd60e51b815260040161069f906116ca565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108895760405162461bcd60e51b815260040161069f906116ca565b6001600160a01b0381166108ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161069f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109ab5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161069f565b6001600160a01b038216610a0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161069f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ad15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161069f565b6001600160a01b038216610b335760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161069f565b60008111610b955760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161069f565b6001600160a01b03831660009081526003602052604081208054839290610bbd9084906116a4565b90915550506001600160a01b03831660009081526005602052604081205482919060ff16158015610c0757506001600160a01b03841660009081526005602052604090205460ff16155b15610c10575060015b6002546001600160a01b038681169116148015610c3a5750600a546001600160a01b038581169116145b15610c7757610c4983806116ff565b6001600160a01b03851660009081526003602052604081208054909190610c719084906116b7565b90915550505b8015610e94576002546001600160a01b038681169116148015610ca857506002546001600160a01b03858116911614155b15610d6957600854831115610d115760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546044820152681e1b9cd05b5bdd5b9d60ba1b606482015260840161069f565b60075483610d34866001600160a01b031660009081526003602052604090205490565b610d3e91906116b7565b1115610d5c5760405162461bcd60e51b815260040161069f90611738565b610d668385610f17565b91505b6002546001600160a01b038581169116148015610d9457506002546001600160a01b03868116911614155b15610e1857600a546001600160a01b031660009081526003602052604090205415610dbe57600080fd5b610dc88386610fee565b6009543060009081526003602052604090205491935011158015610def575060125460ff16155b15610e18576012805460ff19166001179055600954610e0d90611025565b6012805460ff191690555b6002546001600160a01b03858116911614801590610e4457506002546001600160a01b03868116911614155b15610e945760075483610e6c866001600160a01b031660009081526003602052604090205490565b610e7691906116b7565b1115610e945760405162461bcd60e51b815260040161069f90611738565b6001600160a01b03841660009081526003602052604081208054849290610ebc9084906116b7565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f0891815260200190565b60405180910390a35050505050565b6000806064600c6000015485610f2d91906116ff565b610f379190611716565b905060006064600c6001015486610f4e91906116ff565b610f589190611716565b9050610f6481836116b7565b3060009081526003602052604081208054909190610f839084906116b7565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610fbf85856116b7565b60405190815260200160405180910390a380610fdb83876116a4565b610fe591906116a4565b95945050505050565b6000806064600e600001548561100491906116ff565b61100e9190611716565b905060006064600e6001015486610f4e91906116ff565b600e54600f54600c54600d5484936000939092909161104491906116b7565b61104e91906116b7565b61105891906116b7565b600e54600c5461106891906116b7565b61107290846116ff565b61107c9190611716565b600e54600f54600c54600d5493945060009361109891906116b7565b6110a291906116b7565b6110ac91906116b7565b600f54600d546110bc91906116b7565b6110c690856116ff565b6110d09190611716565b905060006110de82846116b7565b905060006110ed84600261117d565b905060006110fb86836111c6565b90504761110782611208565b600061111347836111c6565b9050600061112b86611125848b611362565b9061117d565b905061113785826113e4565b600b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611170573d6000803e3d6000fd5b5050505050505050505050565b60006111bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611498565b9392505050565b60006111bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114c6565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061123d5761123d611784565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba919061179a565b816001815181106112cd576112cd611784565b6001600160a01b0392831660209182029290920101526001546112f39130911684610949565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061132c9085906000908690309042906004016117b7565b600060405180830381600087803b15801561134657600080fd5b505af115801561135a573d6000803e3d6000fd5b505050505050565b600082600003611374575060006105e6565b600061138083856116ff565b90508261138d8583611716565b146111bf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161069f565b6001546113fc9030906001600160a01b031684610949565b600154600a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561146c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114919190611828565b5050505050565b600081836114b95760405162461bcd60e51b815260040161069f91906114f7565b506000610fe58486611716565b600081848411156114ea5760405162461bcd60e51b815260040161069f91906114f7565b506000610fe584866116a4565b600060208083528351808285015260005b8181101561152457858101830151858201604001528201611508565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461155a57600080fd5b50565b6000806040838503121561157057600080fd5b823561157b81611545565b946020939093013593505050565b60008060006060848603121561159e57600080fd5b83356115a981611545565b925060208401356115b981611545565b929592945050506040919091013590565b6000602082840312156115dc57600080fd5b81356111bf81611545565b6000602082840312156115f957600080fd5b5035919050565b6000806040838503121561161357600080fd5b50508035926020909101359150565b6000806040838503121561163557600080fd5b823561164081611545565b91506020830135801515811461165557600080fd5b809150509250929050565b6000806040838503121561167357600080fd5b823561167e81611545565b9150602083013561165581611545565b634e487b7160e01b600052601160045260246000fd5b818103818111156105e6576105e661168e565b808201808211156105e6576105e661168e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820281158282048414176105e6576105e661168e565b60008261173357634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ac57600080fd5b81516111bf81611545565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118075784516001600160a01b0316835293830193918301916001016117e2565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561183d57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209e3bcee9b3eee1e3e8216dc74ea9b09fda1912fe274cff9a84768a668dba30cc64736f6c63430008110033

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

000000000000000000000000b9536b5158da1e5da68067d2f9c8cf66b346c41e000000000000000000000000b9536b5158da1e5da68067d2f9c8cf66b346c41e

-----Decoded View---------------
Arg [0] : charityAddress (address): 0xB9536B5158da1E5da68067d2f9c8cf66B346C41E
Arg [1] : liquidityAddress (address): 0xB9536B5158da1E5da68067d2f9c8cf66B346C41E

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b9536b5158da1e5da68067d2f9c8cf66b346c41e
Arg [1] : 000000000000000000000000b9536b5158da1e5da68067d2f9c8cf66b346c41e


Deployed Bytecode Sourcemap

4755:9941:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5461:61;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5461:61:0;;;;;;;;7056:83;;;;;;;;;;-1:-1:-1;7126:5:0;;;;;;;;;;;;-1:-1:-1;;;7126:5:0;;;;7056:83;;;;;;;:::i;7888:161::-;;;;;;;;;;-1:-1:-1;7888:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;7888:161:0;1205:187:1;4842:41:0;;;;;;;;;;-1:-1:-1;4842:41:0;;;;-1:-1:-1;;;;;4842:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;4842:41:0;1397:229:1;7333:95:0;;;;;;;;;;-1:-1:-1;7413:7:0;;7333:95;;8057:266;;;;;;;;;;-1:-1:-1;8057:266:0;;;;;:::i;:::-;;:::i;5531:32::-;;;;;;;;;;-1:-1:-1;5531:32:0;;;;-1:-1:-1;;;;;5531:32:0;;;5806:23;;;;;;;;;;-1:-1:-1;5806:23:0;;;;;;;;;;;;;2474:25:1;;;2530:2;2515:18;;2508:34;;;;2447:18;5806:23:0;2300:248:1;7242:83:0;;;;;;;;;;-1:-1:-1;7242:83:0;;5255:1;2695:36:1;;2683:2;2668:18;7242:83:0;2553:184:1;8331:215:0;;;;;;;;;;-1:-1:-1;8331:215:0;;;;;:::i;:::-;;:::i;5778:21::-;;;;;;;;;;-1:-1:-1;5778:21:0;;;;;;;;;4890:28;;;;;;;;;;-1:-1:-1;4890:28:0;;;;-1:-1:-1;;;;;4890:28:0;;;9891:123;;;;;;;;;;-1:-1:-1;9891:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9979:27:0;9955:4;9979:27;;;:18;:27;;;;;;;;;9891:123;5329:61;;;;;;;;;;;;;;;;7436:118;;;;;;;;;;-1:-1:-1;7436:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;7529:17:0;7502:7;7529:17;;;:8;:17;;;;;;;7436:118;3280:148;;;;;;;;;;;;;:::i;:::-;;5570:28;;;;;;;;;;-1:-1:-1;5570:28:0;;;;-1:-1:-1;;;;;5570:28:0;;;5397:57;;;;;;;;;;;;;;;;10022:199;;;;;;;;;;-1:-1:-1;10022:199:0;;;;;:::i;:::-;;:::i;3066:79::-;;;;;;;;;;-1:-1:-1;3104:7:0;3131:6;-1:-1:-1;;;;;3131:6:0;3066:79;;10412:178;;;;;;;;;;-1:-1:-1;10412:178:0;;;;;:::i;:::-;;:::i;7147:87::-;;;;;;;;;;-1:-1:-1;7219:7:0;;;;;;;;;;;;-1:-1:-1;;;7219:7:0;;;;7147:87;;10229:175;;;;;;;;;;-1:-1:-1;10229:175:0;;;;;:::i;:::-;;:::i;8554:225::-;;;;;;;;;;-1:-1:-1;8554:225:0;;;;;:::i;:::-;;:::i;7562:167::-;;;;;;;;;;-1:-1:-1;7562:167:0;;;;;:::i;:::-;;:::i;8791:140::-;;;;;;;;;;-1:-1:-1;8791:140:0;;;;;:::i;:::-;;:::i;7737:143::-;;;;;;;;;;-1:-1:-1;7737:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7845:18:0;;;7818:7;7845:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7737:143;3436:244;;;;;;;;;;-1:-1:-1;3436:244:0;;;;;:::i;:::-;;:::i;7888:161::-;7963:4;7980:39;367:10;8003:7;8012:6;7980:8;:39::i;:::-;-1:-1:-1;8037:4:0;7888:161;;;;;:::o;8057:266::-;8155:4;8172:36;8182:6;8190:9;8201:6;8172:9;:36::i;:::-;-1:-1:-1;;;;;8250:19:0;;;;;;:11;:19;;;;;;;;367:10;8250:33;;;;;;;;;8219:74;;8228:6;;8250:42;;8286:6;;8250:42;:::i;:::-;8219:8;:74::i;:::-;-1:-1:-1;8311:4:0;8057:266;;;;;:::o;8331:215::-;367:10;8419:4;8468:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8468:34:0;;;;;;;;;;8419:4;;8436:80;;8459:7;;8468:47;;8505:10;;8468:47;:::i;3280:148::-;3193:6;;-1:-1:-1;;;;;3193:6:0;367:10;3193:22;3185:67;;;;-1:-1:-1;;;3185:67:0;;;;;;;:::i;:::-;;;;;;;;;3387:1:::1;3371:6:::0;;3350:40:::1;::::0;-1:-1:-1;;;;;3371:6:0;;::::1;::::0;3350:40:::1;::::0;3387:1;;3350:40:::1;3418:1;3401:19:::0;;-1:-1:-1;;;;;;3401:19:0::1;::::0;;3280:148::o;10022:199::-;3193:6;;-1:-1:-1;;;;;3193:6:0;367:10;3193:22;3185:67;;;;-1:-1:-1;;;3185:67:0;;;;;;;:::i;:::-;10150:4:::1;10132:13;10122:7;;:23;;;;:::i;:::-;10121:33;;;;:::i;:::-;10102:16;:52:::0;10181:7:::1;::::0;10209:4:::1;::::0;10181:23:::1;::::0;10191:13;;10181:23:::1;:::i;:::-;10180:33;;;;:::i;:::-;10165:12;:48:::0;-1:-1:-1;10022:199:0:o;10412:178::-;3193:6;;-1:-1:-1;;;;;3193:6:0;367:10;3193:22;3185:67;;;;-1:-1:-1;;;3185:67:0;;;;;;;:::i;:::-;10509:7:::1;:33:::0;;;;10553:15;:29;10412:178::o;10229:175::-;3193:6;;-1:-1:-1;;;;;3193:6:0;367:10;3193:22;3185:67;;;;-1:-1:-1;;;3185:67:0;;;;;;;:::i;:::-;10325:6:::1;:32:::0;;;;10368:14;:28;10229:175::o;8554:225::-;367:10;8647:4;8696:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8696:34:0;;;;;;;;;;8647:4;;8664:85;;8687:7;;8696:52;;8733:15;;8696:52;:::i;7562:167::-;7640:4;7657:42;367:10;7681:9;7692:6;7657:9;:42::i;8791:140::-;3193:6;;-1:-1:-1;;;;;3193:6:0;367:10;3193:22;3185:67;;;;-1:-1:-1;;;3185:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8876:36:0;;;::::1;;::::0;;;:18:::1;:36;::::0;;;;:47;;-1:-1:-1;;8876:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8791:140::o;3436:244::-;3193:6;;-1:-1:-1;;;;;3193:6:0;367:10;3193:22;3185:67;;;;-1:-1:-1;;;3185:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3525:22:0;::::1;3517:73;;;::::0;-1:-1:-1;;;3517:73:0;;5599:2:1;3517:73:0::1;::::0;::::1;5581:21:1::0;5638:2;5618:18;;;5611:30;5677:34;5657:18;;;5650:62;-1:-1:-1;;;5728:18:1;;;5721:36;5774:19;;3517:73:0::1;5397:402:1::0;3517:73:0::1;3627:6;::::0;;3606:38:::1;::::0;-1:-1:-1;;;;;3606:38:0;;::::1;::::0;3627:6;::::1;::::0;3606:38:::1;::::0;::::1;3655:6;:17:::0;;-1:-1:-1;;;;;;3655:17:0::1;-1:-1:-1::0;;;;;3655:17:0;;;::::1;::::0;;;::::1;::::0;;3436:244::o;10598:337::-;-1:-1:-1;;;;;10691:19:0;;10683:68;;;;-1:-1:-1;;;10683:68:0;;6006:2:1;10683:68:0;;;5988:21:1;6045:2;6025:18;;;6018:30;6084:34;6064:18;;;6057:62;-1:-1:-1;;;6135:18:1;;;6128:34;6179:19;;10683:68:0;5804:400:1;10683:68:0;-1:-1:-1;;;;;10770:21:0;;10762:68;;;;-1:-1:-1;;;10762:68:0;;6411:2:1;10762:68:0;;;6393:21:1;6450:2;6430:18;;;6423:30;6489:34;6469:18;;;6462:62;-1:-1:-1;;;6540:18:1;;;6533:32;6582:19;;10762:68:0;6209:398:1;10762:68:0;-1:-1:-1;;;;;10843:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10895:32;;160:25:1;;;10895:32:0;;133:18:1;10895:32:0;;;;;;;10598:337;;;:::o;10943:1818::-;-1:-1:-1;;;;;11065:18:0;;11057:68;;;;-1:-1:-1;;;11057:68:0;;6814:2:1;11057:68:0;;;6796:21:1;6853:2;6833:18;;;6826:30;6892:34;6872:18;;;6865:62;-1:-1:-1;;;6943:18:1;;;6936:35;6988:19;;11057:68:0;6612:401:1;11057:68:0;-1:-1:-1;;;;;11144:16:0;;11136:64;;;;-1:-1:-1;;;11136:64:0;;7220:2:1;11136:64:0;;;7202:21:1;7259:2;7239:18;;;7232:30;7298:34;7278:18;;;7271:62;-1:-1:-1;;;7349:18:1;;;7342:33;7392:19;;11136:64:0;7018:399:1;11136:64:0;11228:1;11219:6;:10;11211:64;;;;-1:-1:-1;;;11211:64:0;;7624:2:1;11211:64:0;;;7606:21:1;7663:2;7643:18;;;7636:30;7702:34;7682:18;;;7675:62;-1:-1:-1;;;7753:18:1;;;7746:39;7802:19;;11211:64:0;7422:405:1;11211:64:0;-1:-1:-1;;;;;11296:14:0;;;;;;:8;:14;;;;;:24;;11314:6;;11296:14;:24;;11314:6;;11296:24;:::i;:::-;;;;-1:-1:-1;;;;;;;11412:24:0;;11331:22;11412:24;;;:18;:24;;;;;;11356:6;;11331:22;11412:24;;11411:25;:52;;;;-1:-1:-1;;;;;;11441:22:0;;;;;;:18;:22;;;;;;;;11440:23;11411:52;11408:97;;;-1:-1:-1;11489:4:0;11408:97;11528:13;;-1:-1:-1;;;;;11520:21:0;;;11528:13;;11520:21;:48;;;;-1:-1:-1;11551:17:0;;-1:-1:-1;;;;;11545:23:0;;;11551:17;;11545:23;11520:48;11517:111;;;11601:15;11610:6;;11601:15;:::i;:::-;-1:-1:-1;;;;;11585:12:0;;;;;;:8;:12;;;;;:31;;:12;;;:31;;;;;:::i;:::-;;;;-1:-1:-1;;11517:111:0;11643:7;11640:1013;;;11677:13;;-1:-1:-1;;;;;11669:21:0;;;11677:13;;11669:21;:44;;;;-1:-1:-1;11700:13:0;;-1:-1:-1;;;;;11694:19:0;;;11700:13;;11694:19;;11669:44;11666:336;;;11751:12;;11741:6;:22;;11733:76;;;;-1:-1:-1;;;11733:76:0;;8034:2:1;11733:76:0;;;8016:21:1;8073:2;8053:18;;;8046:30;8112:34;8092:18;;;8085:62;-1:-1:-1;;;8163:18:1;;;8156:39;8212:19;;11733:76:0;7832:405:1;11733:76:0;11862:16;;11852:6;11836:13;11846:2;-1:-1:-1;;;;;7529:17:0;7502:7;7529:17;;;:8;:17;;;;;;;7436:118;11836:13;:22;;;;:::i;:::-;:42;;11828:99;;;;-1:-1:-1;;;11828:99:0;;;;;;;:::i;:::-;11963:23;11975:6;11983:2;11963:11;:23::i;:::-;11946:40;;11666:336;12027:13;;-1:-1:-1;;;;;12021:19:0;;;12027:13;;12021:19;:44;;;;-1:-1:-1;12052:13:0;;-1:-1:-1;;;;;12044:21:0;;;12052:13;;12044:21;;12021:44;12018:426;;;12105:17;;-1:-1:-1;;;;;12105:17:0;7502:7;7529:17;;;:8;:17;;;;;;12095:33;12087:42;;;;;;12171:26;12184:6;12192:4;12171:12;:26::i;:::-;12250:17;;12240:4;7502:7;7529:17;;;:8;:17;;;;;;12154:43;;-1:-1:-1;;12222:45:0;:58;;;;-1:-1:-1;12272:8:0;;;;12271:9;12222:58;12218:209;;;12305:8;:15;;-1:-1:-1;;12305:15:0;12316:4;12305:15;;;12352:17;;12343:27;;:8;:27::i;:::-;12393:8;:16;;-1:-1:-1;;12393:16:0;;;12218:209;12469:13;;-1:-1:-1;;;;;12463:19:0;;;12469:13;;12463:19;;;;:44;;-1:-1:-1;12494:13:0;;-1:-1:-1;;;;;12486:21:0;;;12494:13;;12486:21;;12463:44;12460:182;;;12561:16;;12551:6;12535:13;12545:2;-1:-1:-1;;;;;7529:17:0;7502:7;7529:17;;;:8;:17;;;;;;;7436:118;12535:13;:22;;;;:::i;:::-;:42;;12527:99;;;;-1:-1:-1;;;12527:99:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12673:12:0;;;;;;:8;:12;;;;;:30;;12689:14;;12673:12;:30;;12689:14;;12673:30;:::i;:::-;;;;;;;;12734:2;-1:-1:-1;;;;;12719:34:0;12728:4;-1:-1:-1;;;;;12719:34:0;;12738:14;12719:34;;;;160:25:1;;148:2;133:18;;14:177;12719:34:0;;;;;;;;11046:1715;;10943:1818;;;:::o;8980:446::-;9048:7;9068:25;9124:3;9105:6;:16;;;9096:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9068:59;;9139:24;9192:3;9175:6;:14;;;9166:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;9139:56;-1:-1:-1;9235:36:0;9139:56;9235:17;:36;:::i;:::-;9225:4;9208:23;;;;:8;:23;;;;;:63;;:23;;;:63;;;;;:::i;:::-;;;;-1:-1:-1;9311:4:0;;-1:-1:-1;;;;;;9287:68:0;;;9318:36;9337:17;9318:16;:36;:::i;:::-;9287:68;;160:25:1;;;148:2;133:18;9287:68:0;;;;;;;9401:16;9374:25;9382:17;9374:6;:25;:::i;:::-;:43;;;;:::i;:::-;9366:52;8980:446;-1:-1:-1;;;;;8980:446:0:o;9434:449::-;9503:7;9523:25;9580:3;9560:7;:17;;;9551:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;9523:60;;9595:24;9649:3;9631:7;:15;;;9622:6;:24;;;;:::i;12772:1056::-;13008:7;:17;12990:15;;12971:6;:16;12954:14;;12851:6;;12825:23;;13008:17;;12990:15;;12954:33;;12971:16;12954:33;:::i;:::-;:51;;;;:::i;:::-;:71;;;;:::i;:::-;12932:7;:17;12913:6;:16;:36;;12932:17;12913:36;:::i;:::-;12894:56;;:15;:56;:::i;:::-;:132;;;;:::i;:::-;13171:7;:17;13153:15;;13134:6;:16;13117:14;;12868:158;;-1:-1:-1;13037:21:0;;13117:33;;13134:16;13117:33;:::i;:::-;:51;;;;:::i;:::-;:71;;;;:::i;:::-;13097:15;;13080:14;;:32;;13097:15;13080:32;:::i;:::-;13061:52;;:15;:52;:::i;:::-;:128;;;;:::i;:::-;13037:152;-1:-1:-1;13200:25:0;13228:31;13037:152;13228:15;:31;:::i;:::-;13200:59;-1:-1:-1;13280:26:0;13309:22;:15;13329:1;13309:19;:22::i;:::-;13280:51;-1:-1:-1;13342:26:0;13371:39;:15;13280:51;13371:19;:39::i;:::-;13342:68;-1:-1:-1;13449:21:0;13481:36;13342:68;13481:16;:36::i;:::-;13529:18;13550:44;:21;13576:17;13550:25;:44::i;:::-;13529:65;-1:-1:-1;13615:23:0;13641:54;13677:17;13641:31;13529:65;13656:15;13641:14;:31::i;:::-;:35;;:54::i;:::-;13615:80;;13706:49;13719:18;13739:15;13706:12;:49::i;:::-;13774:13;;13766:54;;-1:-1:-1;;;;;13774:13:0;;;;13798:21;13766:54;;;;;13774:13;13766:54;13774:13;13766:54;13798:21;13774:13;13766:54;;;;;;;;;;;;;;;;;;;;;12814:1014;;;;;;;;;12772:1056;:::o;2009:132::-;2067:7;2094:39;2098:1;2101;2094:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2087:46;2009:132;-1:-1:-1;;;2009:132:0:o;1407:136::-;1465:7;1492:43;1496:1;1499;1492:43;;;;;;;;;;;;;;;;;:3;:43::i;13836:475::-;13926:16;;;13940:1;13926:16;;;;;;;;13902:21;;13926:16;;;;;;;;;;-1:-1:-1;13926:16:0;13902:40;;13971:4;13953;13958:1;13953:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13953:23:0;;;:7;;;;;;;;;;:23;;;;13997:15;;:22;;;-1:-1:-1;;;13997:22:0;;;;:15;;;;;:20;;:22;;;;;13953:7;;13997:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13987:4;13992:1;13987:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13987:32:0;;;:7;;;;;;;;;:32;14064:15;;14032:62;;14049:4;;14064:15;14082:11;14032:8;:62::i;:::-;14107:15;;:196;;-1:-1:-1;;;14107:196:0;;-1:-1:-1;;;;;14107:15:0;;;;:66;;:196;;14188:11;;14107:15;;14230:4;;14257;;14277:15;;14107:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13891:420;13836:475;:::o;1751:250::-;1809:7;1833:1;1838;1833:6;1829:47;;-1:-1:-1;1863:1:0;1856:8;;1829:47;1888:9;1900:5;1904:1;1900;:5;:::i;:::-;1888:17;-1:-1:-1;1933:1:0;1924:5;1928:1;1888:17;1924:5;:::i;:::-;:10;1916:56;;;;-1:-1:-1;;;1916:56:0;;10362:2:1;1916:56:0;;;10344:21:1;10401:2;10381:18;;;10374:30;10440:34;10420:18;;;10413:62;-1:-1:-1;;;10491:18:1;;;10484:31;10532:19;;1916:56:0;10160:397:1;14319:374:0;14432:15;;14400:62;;14417:4;;-1:-1:-1;;;;;14432:15:0;14450:11;14400:8;:62::i;:::-;14475:15;;14627:17;;14475:210;;-1:-1:-1;;;14475:210:0;;14549:4;14475:210;;;10903:34:1;10953:18;;;10946:34;;;14475:15:0;10996:18:1;;;10989:34;;;11039:18;;;11032:34;-1:-1:-1;;;;;14627:17:0;;;11082:19:1;;;11075:44;14659:15:0;11135:19:1;;;11128:35;14475:15:0;;;:31;;14515:9;;10837:19:1;;14475:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14319:374;;:::o;2149:278::-;2235:7;2270:12;2263:5;2255:28;;;;-1:-1:-1;;;2255:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2294:9:0;2306:5;2310:1;2306;:5;:::i;1551:192::-;1637:7;1673:12;1665:6;;;;1657:29;;;;-1:-1:-1;;;1657:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1697:9:0;1709:5;1713:1;1709;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2742:247::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;2909:9;2896:23;2928:31;2953:5;2928:31;:::i;2994:180::-;3053:6;3106:2;3094:9;3085:7;3081:23;3077:32;3074:52;;;3122:1;3119;3112:12;3074:52;-1:-1:-1;3145:23:1;;2994:180;-1:-1:-1;2994:180:1:o;3179:248::-;3247:6;3255;3308:2;3296:9;3287:7;3283:23;3279:32;3276:52;;;3324:1;3321;3314:12;3276:52;-1:-1:-1;;3347:23:1;;;3417:2;3402:18;;;3389:32;;-1:-1:-1;3179:248:1:o;3432:416::-;3497:6;3505;3558:2;3546:9;3537:7;3533:23;3529:32;3526:52;;;3574:1;3571;3564:12;3526:52;3613:9;3600:23;3632:31;3657:5;3632:31;:::i;:::-;3682:5;-1:-1:-1;3739:2:1;3724:18;;3711:32;3781:15;;3774:23;3762:36;;3752:64;;3812:1;3809;3802:12;3752:64;3835:7;3825:17;;;3432:416;;;;;:::o;3853:388::-;3921:6;3929;3982:2;3970:9;3961:7;3957:23;3953:32;3950:52;;;3998:1;3995;3988:12;3950:52;4037:9;4024:23;4056:31;4081:5;4056:31;:::i;:::-;4106:5;-1:-1:-1;4163:2:1;4148:18;;4135:32;4176:33;4135:32;4176:33;:::i;4246:127::-;4307:10;4302:3;4298:20;4295:1;4288:31;4338:4;4335:1;4328:15;4362:4;4359:1;4352:15;4378:128;4445:9;;;4466:11;;;4463:37;;;4480:18;;:::i;4511:125::-;4576:9;;;4597:10;;;4594:36;;;4610:18;;:::i;4641:356::-;4843:2;4825:21;;;4862:18;;;4855:30;4921:34;4916:2;4901:18;;4894:62;4988:2;4973:18;;4641:356::o;5002:168::-;5075:9;;;5106;;5123:15;;;5117:22;;5103:37;5093:71;;5144:18;;:::i;5175:217::-;5215:1;5241;5231:132;;5285:10;5280:3;5276:20;5273:1;5266:31;5320:4;5317:1;5310:15;5348:4;5345:1;5338:15;5231:132;-1:-1:-1;5377:9:1;;5175:217::o;8242:408::-;8444:2;8426:21;;;8483:2;8463:18;;;8456:30;8522:34;8517:2;8502:18;;8495:62;-1:-1:-1;;;8588:2:1;8573:18;;8566:42;8640:3;8625:19;;8242:408::o;8787:127::-;8848:10;8843:3;8839:20;8836:1;8829:31;8879:4;8876:1;8869:15;8903:4;8900:1;8893:15;8919:251;8989:6;9042:2;9030:9;9021:7;9017:23;9013:32;9010:52;;;9058:1;9055;9048:12;9010:52;9090:9;9084:16;9109:31;9134:5;9109:31;:::i;9175:980::-;9437:4;9485:3;9474:9;9470:19;9516:6;9505:9;9498:25;9542:2;9580:6;9575:2;9564:9;9560:18;9553:34;9623:3;9618:2;9607:9;9603:18;9596:31;9647:6;9682;9676:13;9713:6;9705;9698:22;9751:3;9740:9;9736:19;9729:26;;9790:2;9782:6;9778:15;9764:29;;9811:1;9821:195;9835:6;9832:1;9829:13;9821:195;;;9900:13;;-1:-1:-1;;;;;9896:39:1;9884:52;;9991:15;;;;9956:12;;;;9932:1;9850:9;9821:195;;;-1:-1:-1;;;;;;;10072:32:1;;;;10067:2;10052:18;;10045:60;-1:-1:-1;;;10136:3:1;10121:19;10114:35;10033:3;9175:980;-1:-1:-1;;;9175:980:1:o;11174:306::-;11262:6;11270;11278;11331:2;11319:9;11310:7;11306:23;11302:32;11299:52;;;11347:1;11344;11337:12;11299:52;11376:9;11370:16;11360:26;;11426:2;11415:9;11411:18;11405:25;11395:35;;11470:2;11459:9;11455:18;11449:25;11439:35;;11174:306;;;;;:::o

Swarm Source

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