ETH Price: $3,005.10 (+1.15%)
Gas: 6 Gwei

Token

SHIX (SHIX)
 

Overview

Max Total Supply

100,000,000 SHIX

Holders

287

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
322.709550570987107756 SHIX

Value
$0.00
0x68fa220883a7c8a3a40cf72440481a9bd1477ba1
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:
SHIX

Compiler Version
v0.8.11+commit.d7f03943

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-19
*/

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

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 SHIX 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 = 0x0578CCb5ea798304A05ae5a0E2fBFBaBFf9D5012;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 1202 * 10**_decimals;
        marketingWalletAddress = payable(0x0578CCb5ea798304A05ae5a0E2fBFBaBFf9D5012);
        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"}]

608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060186101000a81548160ff021916908315150217905550604051620040eb380380620040eb833981810160405281019062000121919062000ab4565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000194573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ba919062000bc9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000222573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000248919062000bc9565b6040518363ffffffff1660e01b81526004016200026792919062000c0c565b6020604051808303816000875af115801562000287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ad919062000bc9565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846001908051906020019062000305929190620007ee565b5083600290805190602001906200031e929190620007ee565b5082600360006101000a81548160ff021916908360ff160217905550730578ccb5ea798304a05ae5a0e2fbfbabff9d50126000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620003ac919062000dbc565b82620003b9919062000e0d565b600b81905550600360009054906101000a900460ff16600a620003dd919062000dbc565b6104b2620003ec919062000e0d565b600c81905550730578ccb5ea798304a05ae5a0e2fbfbabff9d5012600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620007db919062000e7f565b60405180910390a3505050505062000f01565b828054620007fc9062000ecb565b90600052602060002090601f0160209004810192826200082057600085556200086c565b82601f106200083b57805160ff19168380011785556200086c565b828001600101855582156200086c579182015b828111156200086b5782518255916020019190600101906200084e565b5b5090506200087b91906200087f565b5090565b5b808211156200089a57600081600090555060010162000880565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200090782620008bc565b810181811067ffffffffffffffff82111715620009295762000928620008cd565b5b80604052505050565b60006200093e6200089e565b90506200094c8282620008fc565b919050565b600067ffffffffffffffff8211156200096f576200096e620008cd565b5b6200097a82620008bc565b9050602081019050919050565b60005b83811015620009a75780820151818401526020810190506200098a565b83811115620009b7576000848401525b50505050565b6000620009d4620009ce8462000951565b62000932565b905082815260208101848484011115620009f357620009f2620008b7565b5b62000a0084828562000987565b509392505050565b600082601f83011262000a205762000a1f620008b2565b5b815162000a32848260208601620009bd565b91505092915050565b600060ff82169050919050565b62000a538162000a3b565b811462000a5f57600080fd5b50565b60008151905062000a738162000a48565b92915050565b6000819050919050565b62000a8e8162000a79565b811462000a9a57600080fd5b50565b60008151905062000aae8162000a83565b92915050565b6000806000806080858703121562000ad15762000ad0620008a8565b5b600085015167ffffffffffffffff81111562000af25762000af1620008ad565b5b62000b008782880162000a08565b945050602085015167ffffffffffffffff81111562000b245762000b23620008ad565b5b62000b328782880162000a08565b935050604062000b458782880162000a62565b925050606062000b588782880162000a9d565b91505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b918262000b64565b9050919050565b62000ba38162000b84565b811462000baf57600080fd5b50565b60008151905062000bc38162000b98565b92915050565b60006020828403121562000be25762000be1620008a8565b5b600062000bf28482850162000bb2565b91505092915050565b62000c068162000b84565b82525050565b600060408201905062000c23600083018562000bfb565b62000c32602083018462000bfb565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000cc75780860481111562000c9f5762000c9e62000c39565b5b600185161562000caf5780820291505b808102905062000cbf8562000c68565b945062000c7f565b94509492505050565b60008262000ce2576001905062000db5565b8162000cf2576000905062000db5565b816001811462000d0b576002811462000d165762000d4c565b600191505062000db5565b60ff84111562000d2b5762000d2a62000c39565b5b8360020a91508482111562000d455762000d4462000c39565b5b5062000db5565b5060208310610133831016604e8410600b841016171562000d865782820a90508381111562000d805762000d7f62000c39565b5b62000db5565b62000d95848484600162000c75565b9250905081840481111562000daf5762000dae62000c39565b5b81810290505b9392505050565b600062000dc98262000a79565b915062000dd68362000a3b565b925062000e057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cd0565b905092915050565b600062000e1a8262000a79565b915062000e278362000a79565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e635762000e6262000c39565b5b828202905092915050565b62000e798162000a79565b82525050565b600060208201905062000e96600083018462000e6e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ee457607f821691505b6020821081141562000efb5762000efa62000e9c565b5b50919050565b6131da8062000f116000396000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab578063a457c2d71161006f578063a457c2d714610403578063a9059cbb14610440578063b2bdfa7b1461047d578063ca72a4e7146104a8578063dd62ed3e146104d1578063f2fde38b1461050e57610135565b806370a082311461032e5780638da5cb5b1461036b578063914eb66a1461039657806395d89b41146103ad578063a073d37f146103d857610135565b8063313ce567116100f2578063313ce5671461023557806339509351146102605780633b97084a1461029d5780633ecad271146102c6578063557ed1ba1461030357610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd57806327c8f8351461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610537565b60405161015c919061252c565b60405180910390f35b34801561017157600080fd5b5061018c600480360381019061018791906125e7565b6105c9565b6040516101999190612642565b60405180910390f35b3480156101ae57600080fd5b506101b76105e7565b6040516101c4919061266c565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef9190612687565b6105f1565b6040516102019190612642565b60405180910390f35b34801561021657600080fd5b5061021f6106cb565b60405161022c91906126e9565b60405180910390f35b34801561024157600080fd5b5061024a6106f1565b6040516102579190612720565b60405180910390f35b34801561026c57600080fd5b50610287600480360381019061028291906125e7565b610708565b6040516102949190612642565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf919061273b565b6107bb565b005b3480156102d257600080fd5b506102ed60048036038101906102e89190612768565b61085a565b6040516102fa9190612642565b60405180910390f35b34801561030f57600080fd5b5061031861087a565b604051610325919061266c565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612768565b610882565b604051610362919061266c565b60405180910390f35b34801561037757600080fd5b506103806108cb565b60405161038d91906126e9565b60405180910390f35b3480156103a257600080fd5b506103ab6108f4565b005b3480156103b957600080fd5b506103c2610a47565b6040516103cf919061252c565b60405180910390f35b3480156103e457600080fd5b506103ed610ad9565b6040516103fa919061266c565b60405180910390f35b34801561040f57600080fd5b5061042a600480360381019061042591906125e7565b610ae3565b6040516104379190612642565b60405180910390f35b34801561044c57600080fd5b50610467600480360381019061046291906125e7565b610bb0565b6040516104749190612642565b60405180910390f35b34801561048957600080fd5b50610492610bcf565b60405161049f91906126e9565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca9190612768565b610bf3565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190612795565b6111c2565b604051610505919061266c565b60405180910390f35b34801561051a57600080fd5b5061053560048036038101906105309190612768565b611249565b005b60606001805461054690612804565b80601f016020809104026020016040519081016040528092919081815260200182805461057290612804565b80156105bf5780601f10610594576101008083540402835291602001916105bf565b820191906000526020600020905b8154815290600101906020018083116105a257829003601f168201915b5050505050905090565b60006105dd6105d661140b565b8484611413565b6001905092915050565b6000600b54905090565b60006105fe8484846115de565b506106c08461060b61140b565b6106bb8560405180606001604052806028815260200161315860289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067161140b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aaf9092919063ffffffff16565b611413565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006107b161071561140b565b846107ac856006600061072661140b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1390919063ffffffff16565b611413565b6001905092915050565b6107c361140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084790612882565b60405180910390fd5b80600c8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108fc61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098090612882565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610a5690612804565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8290612804565b8015610acf5780601f10610aa457610100808354040283529160200191610acf565b820191906000526020600020905b815481529060010190602001808311610ab257829003601f168201915b5050505050905090565b6000600c54905090565b6000610ba6610af061140b565b84610ba1856040518060600160405280602581526020016131806025913960066000610b1a61140b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aaf9092919063ffffffff16565b611413565b6001905092915050565b6000610bc4610bbd61140b565b84846115de565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bfb61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7f90612882565b60405180910390fd5b6001601060186101000a81548160ff0219169083151502179055506001601060176101000a81548160ff021916908315150217905550436011819055506001601060156101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd691906128b7565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8391906128b7565b6040518363ffffffff1660e01b8152600401610ea09291906128e4565b602060405180830381865afa158015610ebd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee191906128b7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fdd578073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f9492919061290d565b6020604051808303816000875af1158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190612962565b5061117d565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106e91906128b7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111b91906128b7565b6040518363ffffffff1660e01b81526004016111389291906128e4565b6020604051808303816000875af1158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117b91906128b7565b505b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61125161140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d590612882565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134590612a01565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90612a93565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea90612b25565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115d1919061266c565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690612bb7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690612c49565b60405180910390fd5b60008211611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612cdb565b60405180910390fd5b601060149054906101000a900460ff161561172957611722848484611b71565b9050611aa8565b600061173430610882565b9050601060149054906101000a900460ff1615801561179d5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117b55750601060159054906101000a900460ff165b1561182057601060169054906101000a900460ff16156117d557600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061181f81611d44565b5b6118a9836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aaf9092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061198f5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6119a35761199e868686611dc2565b6119a5565b835b90506119f981600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1390919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a99919061266c565b60405180910390a36001925050505b9392505050565b6000838311158290611af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aee919061252c565b60405180910390fd5b5060008385611b069190612d2a565b9050809150509392505050565b6000808284611b229190612d5e565b905083811015611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90612e00565b60405180910390fd5b8091505092915050565b6000611bfc826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aaf9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9182600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d31919061266c565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550611d6881611fe9565b60004790506000811115611da357611da2600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826122d6565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e4a57611e436064611e356009548661232190919063ffffffff16565b61239c90919063ffffffff16565b9050611ec8565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ec757611ec46064611eb6600a548661232190919063ffffffff16565b61239c90919063ffffffff16565b90505b5b6000811115611fcc57611f2381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1390919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fc3919061266c565b60405180910390a35b611fdf81846123e690919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff81111561200657612005612e20565b5b6040519080825280602002602001820160405280156120345781602001602082028036833780820191505090505b509050308160008151811061204c5761204b612e4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106120bd576120bc612e4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612164573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218891906128b7565b8160028151811061219c5761219b612e4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061220330600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611413565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612267959493929190612f81565b600060405180830381600087803b15801561228157600080fd5b505af1158015612295573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516122ca929190612fdb565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561231c573d6000803e3d6000fd5b505050565b6000808314156123345760009050612396565b60008284612342919061300b565b90508284826123519190613094565b14612391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238890613137565b60405180910390fd5b809150505b92915050565b60006123de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612430565b905092915050565b600061242883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611aaf565b905092915050565b60008083118290612477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246e919061252c565b60405180910390fd5b50600083856124869190613094565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124cd5780820151818401526020810190506124b2565b838111156124dc576000848401525b50505050565b6000601f19601f8301169050919050565b60006124fe82612493565b612508818561249e565b93506125188185602086016124af565b612521816124e2565b840191505092915050565b6000602082019050818103600083015261254681846124f3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257e82612553565b9050919050565b61258e81612573565b811461259957600080fd5b50565b6000813590506125ab81612585565b92915050565b6000819050919050565b6125c4816125b1565b81146125cf57600080fd5b50565b6000813590506125e1816125bb565b92915050565b600080604083850312156125fe576125fd61254e565b5b600061260c8582860161259c565b925050602061261d858286016125d2565b9150509250929050565b60008115159050919050565b61263c81612627565b82525050565b60006020820190506126576000830184612633565b92915050565b612666816125b1565b82525050565b6000602082019050612681600083018461265d565b92915050565b6000806000606084860312156126a05761269f61254e565b5b60006126ae8682870161259c565b93505060206126bf8682870161259c565b92505060406126d0868287016125d2565b9150509250925092565b6126e381612573565b82525050565b60006020820190506126fe60008301846126da565b92915050565b600060ff82169050919050565b61271a81612704565b82525050565b60006020820190506127356000830184612711565b92915050565b6000602082840312156127515761275061254e565b5b600061275f848285016125d2565b91505092915050565b60006020828403121561277e5761277d61254e565b5b600061278c8482850161259c565b91505092915050565b600080604083850312156127ac576127ab61254e565b5b60006127ba8582860161259c565b92505060206127cb8582860161259c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061281c57607f821691505b602082108114156128305761282f6127d5565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061286c60208361249e565b915061287782612836565b602082019050919050565b6000602082019050818103600083015261289b8161285f565b9050919050565b6000815190506128b181612585565b92915050565b6000602082840312156128cd576128cc61254e565b5b60006128db848285016128a2565b91505092915050565b60006040820190506128f960008301856126da565b61290660208301846126da565b9392505050565b600060408201905061292260008301856126da565b61292f602083018461265d565b9392505050565b61293f81612627565b811461294a57600080fd5b50565b60008151905061295c81612936565b92915050565b6000602082840312156129785761297761254e565b5b60006129868482850161294d565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006129eb60268361249e565b91506129f68261298f565b604082019050919050565b60006020820190508181036000830152612a1a816129de565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a7d60248361249e565b9150612a8882612a21565b604082019050919050565b60006020820190508181036000830152612aac81612a70565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b0f60228361249e565b9150612b1a82612ab3565b604082019050919050565b60006020820190508181036000830152612b3e81612b02565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ba160258361249e565b9150612bac82612b45565b604082019050919050565b60006020820190508181036000830152612bd081612b94565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c3360238361249e565b9150612c3e82612bd7565b604082019050919050565b60006020820190508181036000830152612c6281612c26565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cc560298361249e565b9150612cd082612c69565b604082019050919050565b60006020820190508181036000830152612cf481612cb8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d35826125b1565b9150612d40836125b1565b925082821015612d5357612d52612cfb565b5b828203905092915050565b6000612d69826125b1565b9150612d74836125b1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612da957612da8612cfb565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612dea601b8361249e565b9150612df582612db4565b602082019050919050565b60006020820190508181036000830152612e1981612ddd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000612ead612ea8612ea384612e7e565b612e88565b6125b1565b9050919050565b612ebd81612e92565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ef881612573565b82525050565b6000612f0a8383612eef565b60208301905092915050565b6000602082019050919050565b6000612f2e82612ec3565b612f388185612ece565b9350612f4383612edf565b8060005b83811015612f74578151612f5b8882612efe565b9750612f6683612f16565b925050600181019050612f47565b5085935050505092915050565b600060a082019050612f96600083018861265d565b612fa36020830187612eb4565b8181036040830152612fb58186612f23565b9050612fc460608301856126da565b612fd1608083018461265d565b9695505050505050565b6000604082019050612ff0600083018561265d565b81810360208301526130028184612f23565b90509392505050565b6000613016826125b1565b9150613021836125b1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561305a57613059612cfb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061309f826125b1565b91506130aa836125b1565b9250826130ba576130b9613065565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061312160218361249e565b915061312c826130c5565b604082019050919050565b6000602082019050818103600083015261315081613114565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122076f143c19759945397e6f1fa2dc6d68de74a2df48d3c97ac1e5f9041103adcf864736f6c634300080b0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000004534849580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045348495800000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806370a08231116100ab578063a457c2d71161006f578063a457c2d714610403578063a9059cbb14610440578063b2bdfa7b1461047d578063ca72a4e7146104a8578063dd62ed3e146104d1578063f2fde38b1461050e57610135565b806370a082311461032e5780638da5cb5b1461036b578063914eb66a1461039657806395d89b41146103ad578063a073d37f146103d857610135565b8063313ce567116100f2578063313ce5671461023557806339509351146102605780633b97084a1461029d5780633ecad271146102c6578063557ed1ba1461030357610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd57806327c8f8351461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610537565b60405161015c919061252c565b60405180910390f35b34801561017157600080fd5b5061018c600480360381019061018791906125e7565b6105c9565b6040516101999190612642565b60405180910390f35b3480156101ae57600080fd5b506101b76105e7565b6040516101c4919061266c565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef9190612687565b6105f1565b6040516102019190612642565b60405180910390f35b34801561021657600080fd5b5061021f6106cb565b60405161022c91906126e9565b60405180910390f35b34801561024157600080fd5b5061024a6106f1565b6040516102579190612720565b60405180910390f35b34801561026c57600080fd5b50610287600480360381019061028291906125e7565b610708565b6040516102949190612642565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf919061273b565b6107bb565b005b3480156102d257600080fd5b506102ed60048036038101906102e89190612768565b61085a565b6040516102fa9190612642565b60405180910390f35b34801561030f57600080fd5b5061031861087a565b604051610325919061266c565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612768565b610882565b604051610362919061266c565b60405180910390f35b34801561037757600080fd5b506103806108cb565b60405161038d91906126e9565b60405180910390f35b3480156103a257600080fd5b506103ab6108f4565b005b3480156103b957600080fd5b506103c2610a47565b6040516103cf919061252c565b60405180910390f35b3480156103e457600080fd5b506103ed610ad9565b6040516103fa919061266c565b60405180910390f35b34801561040f57600080fd5b5061042a600480360381019061042591906125e7565b610ae3565b6040516104379190612642565b60405180910390f35b34801561044c57600080fd5b50610467600480360381019061046291906125e7565b610bb0565b6040516104749190612642565b60405180910390f35b34801561048957600080fd5b50610492610bcf565b60405161049f91906126e9565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca9190612768565b610bf3565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190612795565b6111c2565b604051610505919061266c565b60405180910390f35b34801561051a57600080fd5b5061053560048036038101906105309190612768565b611249565b005b60606001805461054690612804565b80601f016020809104026020016040519081016040528092919081815260200182805461057290612804565b80156105bf5780601f10610594576101008083540402835291602001916105bf565b820191906000526020600020905b8154815290600101906020018083116105a257829003601f168201915b5050505050905090565b60006105dd6105d661140b565b8484611413565b6001905092915050565b6000600b54905090565b60006105fe8484846115de565b506106c08461060b61140b565b6106bb8560405180606001604052806028815260200161315860289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067161140b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aaf9092919063ffffffff16565b611413565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006107b161071561140b565b846107ac856006600061072661140b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1390919063ffffffff16565b611413565b6001905092915050565b6107c361140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084790612882565b60405180910390fd5b80600c8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108fc61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098090612882565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610a5690612804565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8290612804565b8015610acf5780601f10610aa457610100808354040283529160200191610acf565b820191906000526020600020905b815481529060010190602001808311610ab257829003601f168201915b5050505050905090565b6000600c54905090565b6000610ba6610af061140b565b84610ba1856040518060600160405280602581526020016131806025913960066000610b1a61140b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aaf9092919063ffffffff16565b611413565b6001905092915050565b6000610bc4610bbd61140b565b84846115de565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bfb61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7f90612882565b60405180910390fd5b6001601060186101000a81548160ff0219169083151502179055506001601060176101000a81548160ff021916908315150217905550436011819055506001601060156101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd691906128b7565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8391906128b7565b6040518363ffffffff1660e01b8152600401610ea09291906128e4565b602060405180830381865afa158015610ebd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee191906128b7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fdd578073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f9492919061290d565b6020604051808303816000875af1158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190612962565b5061117d565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106e91906128b7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111b91906128b7565b6040518363ffffffff1660e01b81526004016111389291906128e4565b6020604051808303816000875af1158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117b91906128b7565b505b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61125161140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d590612882565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134590612a01565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90612a93565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea90612b25565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115d1919061266c565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690612bb7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690612c49565b60405180910390fd5b60008211611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612cdb565b60405180910390fd5b601060149054906101000a900460ff161561172957611722848484611b71565b9050611aa8565b600061173430610882565b9050601060149054906101000a900460ff1615801561179d5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117b55750601060159054906101000a900460ff165b1561182057601060169054906101000a900460ff16156117d557600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061181f81611d44565b5b6118a9836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aaf9092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061198f5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6119a35761199e868686611dc2565b6119a5565b835b90506119f981600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1390919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a99919061266c565b60405180910390a36001925050505b9392505050565b6000838311158290611af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aee919061252c565b60405180910390fd5b5060008385611b069190612d2a565b9050809150509392505050565b6000808284611b229190612d5e565b905083811015611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90612e00565b60405180910390fd5b8091505092915050565b6000611bfc826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aaf9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9182600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d31919061266c565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550611d6881611fe9565b60004790506000811115611da357611da2600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826122d6565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e4a57611e436064611e356009548661232190919063ffffffff16565b61239c90919063ffffffff16565b9050611ec8565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ec757611ec46064611eb6600a548661232190919063ffffffff16565b61239c90919063ffffffff16565b90505b5b6000811115611fcc57611f2381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1390919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fc3919061266c565b60405180910390a35b611fdf81846123e690919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff81111561200657612005612e20565b5b6040519080825280602002602001820160405280156120345781602001602082028036833780820191505090505b509050308160008151811061204c5761204b612e4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106120bd576120bc612e4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612164573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218891906128b7565b8160028151811061219c5761219b612e4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061220330600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611413565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612267959493929190612f81565b600060405180830381600087803b15801561228157600080fd5b505af1158015612295573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516122ca929190612fdb565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561231c573d6000803e3d6000fd5b505050565b6000808314156123345760009050612396565b60008284612342919061300b565b90508284826123519190613094565b14612391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238890613137565b60405180910390fd5b809150505b92915050565b60006123de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612430565b905092915050565b600061242883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611aaf565b905092915050565b60008083118290612477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246e919061252c565b60405180910390fd5b50600083856124869190613094565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124cd5780820151818401526020810190506124b2565b838111156124dc576000848401525b50505050565b6000601f19601f8301169050919050565b60006124fe82612493565b612508818561249e565b93506125188185602086016124af565b612521816124e2565b840191505092915050565b6000602082019050818103600083015261254681846124f3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257e82612553565b9050919050565b61258e81612573565b811461259957600080fd5b50565b6000813590506125ab81612585565b92915050565b6000819050919050565b6125c4816125b1565b81146125cf57600080fd5b50565b6000813590506125e1816125bb565b92915050565b600080604083850312156125fe576125fd61254e565b5b600061260c8582860161259c565b925050602061261d858286016125d2565b9150509250929050565b60008115159050919050565b61263c81612627565b82525050565b60006020820190506126576000830184612633565b92915050565b612666816125b1565b82525050565b6000602082019050612681600083018461265d565b92915050565b6000806000606084860312156126a05761269f61254e565b5b60006126ae8682870161259c565b93505060206126bf8682870161259c565b92505060406126d0868287016125d2565b9150509250925092565b6126e381612573565b82525050565b60006020820190506126fe60008301846126da565b92915050565b600060ff82169050919050565b61271a81612704565b82525050565b60006020820190506127356000830184612711565b92915050565b6000602082840312156127515761275061254e565b5b600061275f848285016125d2565b91505092915050565b60006020828403121561277e5761277d61254e565b5b600061278c8482850161259c565b91505092915050565b600080604083850312156127ac576127ab61254e565b5b60006127ba8582860161259c565b92505060206127cb8582860161259c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061281c57607f821691505b602082108114156128305761282f6127d5565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061286c60208361249e565b915061287782612836565b602082019050919050565b6000602082019050818103600083015261289b8161285f565b9050919050565b6000815190506128b181612585565b92915050565b6000602082840312156128cd576128cc61254e565b5b60006128db848285016128a2565b91505092915050565b60006040820190506128f960008301856126da565b61290660208301846126da565b9392505050565b600060408201905061292260008301856126da565b61292f602083018461265d565b9392505050565b61293f81612627565b811461294a57600080fd5b50565b60008151905061295c81612936565b92915050565b6000602082840312156129785761297761254e565b5b60006129868482850161294d565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006129eb60268361249e565b91506129f68261298f565b604082019050919050565b60006020820190508181036000830152612a1a816129de565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a7d60248361249e565b9150612a8882612a21565b604082019050919050565b60006020820190508181036000830152612aac81612a70565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b0f60228361249e565b9150612b1a82612ab3565b604082019050919050565b60006020820190508181036000830152612b3e81612b02565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ba160258361249e565b9150612bac82612b45565b604082019050919050565b60006020820190508181036000830152612bd081612b94565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c3360238361249e565b9150612c3e82612bd7565b604082019050919050565b60006020820190508181036000830152612c6281612c26565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cc560298361249e565b9150612cd082612c69565b604082019050919050565b60006020820190508181036000830152612cf481612cb8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d35826125b1565b9150612d40836125b1565b925082821015612d5357612d52612cfb565b5b828203905092915050565b6000612d69826125b1565b9150612d74836125b1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612da957612da8612cfb565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612dea601b8361249e565b9150612df582612db4565b602082019050919050565b60006020820190508181036000830152612e1981612ddd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000612ead612ea8612ea384612e7e565b612e88565b6125b1565b9050919050565b612ebd81612e92565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ef881612573565b82525050565b6000612f0a8383612eef565b60208301905092915050565b6000602082019050919050565b6000612f2e82612ec3565b612f388185612ece565b9350612f4383612edf565b8060005b83811015612f74578151612f5b8882612efe565b9750612f6683612f16565b925050600181019050612f47565b5085935050505092915050565b600060a082019050612f96600083018861265d565b612fa36020830187612eb4565b8181036040830152612fb58186612f23565b9050612fc460608301856126da565b612fd1608083018461265d565b9695505050505050565b6000604082019050612ff0600083018561265d565b81810360208301526130028184612f23565b90509392505050565b6000613016826125b1565b9150613021836125b1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561305a57613059612cfb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061309f826125b1565b91506130aa836125b1565b9250826130ba576130b9613065565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061312160218361249e565b915061312c826130c5565b604082019050919050565b6000602082019050818103600083015261315081613114565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122076f143c19759945397e6f1fa2dc6d68de74a2df48d3c97ac1e5f9041103adcf864736f6c634300080b0033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000004534849580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045348495800000000000000000000000000000000000000000000000000000000

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

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


Deployed Bytecode Sourcemap

8030:9512:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10736:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12039:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11009:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13917:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8282:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10918:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11387:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12573:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8539:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6229:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11117:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5614:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5824:145;;;;;;;;;;;;;:::i;:::-;;10827:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11910:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11623:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13742:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5490:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12809:693;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11236:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5977:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10736:83;10773:13;10806:5;10799:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10736:83;:::o;12039:171::-;12114:4;12131:49;12140:12;:10;:12::i;:::-;12164:7;12173:6;12131:8;:49::i;:::-;12198:4;12191:11;;12039:171;;;;:::o;11009:100::-;11062:7;11089:12;;11082:19;;11009:100;:::o;13917:315::-;14015:4;14032:36;14042:6;14050:9;14061:6;14032:9;:36::i;:::-;;14071:131;14080:6;14088:12;:10;:12::i;:::-;14112:89;14150:6;14112:89;;;;;;;;;;;;;;;;;:11;:19;14124:6;14112:19;;;;;;;;;;;;;;;:33;14132:12;:10;:12::i;:::-;14112:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14071:8;:131::i;:::-;14220:4;14213:11;;13917:315;;;;;:::o;8282:71::-;;;;;;;;;;;;;:::o;10918:83::-;10959:5;10984:9;;;;;;;;;;;10977:16;;10918:83;:::o;11387:228::-;11475:4;11492:93;11501:12;:10;:12::i;:::-;11515:7;11534:50;11573:10;11534:11;:25;11546:12;:10;:12::i;:::-;11534:25;;;;;;;;;;;;;;;:34;11560:7;11534:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11492:8;:93::i;:::-;11603:4;11596:11;;11387:228;;;;:::o;12573:125::-;5751:12;:10;:12::i;:::-;5741:22;;:6;;;;;;;;;;:22;;;5733:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12682:8:::1;12655:24;:35;;;;12573:125:::0;:::o;8539:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6229:90::-;6269:7;6296:15;6289:22;;6229:90;:::o;11117:111::-;11183:7;11202:9;:18;11212:7;11202:18;;;;;;;;;;;;;;;;11195:25;;11117:111;;;:::o;5614:79::-;5652:7;5679:6;;;;;;;;;;;5672:13;;5614:79;:::o;5824:145::-;5751:12;:10;:12::i;:::-;5741:22;;:6;;;;;;;;;;:22;;;5733:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5928:1:::1;5891:40;;5912:6;::::0;::::1;;;;;;;;5891:40;;;;;;;;;;;;5959:1;5942:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5824:145::o:0;10827:83::-;10866:13;10899:7;10892:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10827:83;:::o;11910:121::-;11972:7;11999:24;;11992:31;;11910:121;:::o;11623:279::-;11716:4;11733:139;11742:12;:10;:12::i;:::-;11756:7;11775:96;11814:15;11775:96;;;;;;;;;;;;;;;;;:11;:25;11787:12;:10;:12::i;:::-;11775:25;;;;;;;;;;;;;;;:34;11801:7;11775:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11733:8;:139::i;:::-;11890:4;11883:11;;11623:279;;;;:::o;13742:167::-;13820:4;13837:42;13847:12;:10;:12::i;:::-;13861:9;13872:6;13837:9;:42::i;:::-;;13897:4;13890:11;;13742:167;;;;:::o;5490:21::-;;;;;;;;;;;;:::o;12809:693::-;5751:12;:10;:12::i;:::-;5741:22;;:6;;;;;;;;;;:22;;;5733:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12892:4:::1;12878:11;;:18;;;;;;;;;;;;;;;;;;12912:4;12898:11;;:18;;;;;;;;;;;;;;;;;;12940:12;12927:10;:25;;;;12987:4;12963:21;;:28;;;;;;;;;;;;;;;;;;13039:7;;;;;;;;;;;13002:15;;:45;;;;;;;;;;;;;;;;;;13059:21;13101:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13083:52;;;13144:4;13151:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13083:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13059:115;;13213:1;13188:27;;:13;:27;;;13185:245;;13238:13;13231:29;;;13269:15;;;;;;;;;;;13287:14;13231:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13185:245;;;13351:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13333:55;;;13397:4;13404:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13333:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13185:245;13477:6;13440:15;;:44;;;;;;;;;;;;;;;;;;12867:635;12809:693:::0;:::o;11236:143::-;11317:7;11344:11;:18;11356:5;11344:18;;;;;;;;;;;;;;;:27;11363:7;11344:27;;;;;;;;;;;;;;;;11337:34;;11236:143;;;;:::o;5977:244::-;5751:12;:10;:12::i;:::-;5741:22;;:6;;;;;;;;;;:22;;;5733:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6086:1:::1;6066:22;;:8;:22;;;;6058:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6176:8;6147:38;;6168:6;::::0;::::1;;;;;;;;6147:38;;;;;;;;;;;;6205:8;6196:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5977:244:::0;:::o;103:115::-;156:15;199:10;184:26;;103:115;:::o;12218:347::-;12328:1;12311:19;;:5;:19;;;;12303:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12409:1;12390:21;;:7;:21;;;;12382:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;12503:6;12473:11;:18;12485:5;12473:18;;;;;;;;;;;;;;;:27;12492:7;12473:27;;;;;;;;;;;;;;;:36;;;;12541:7;12525:32;;12534:5;12525:32;;;12550:6;12525:32;;;;;;:::i;:::-;;;;;;;;12218:347;;;:::o;14240:1329::-;14333:4;14378:1;14360:20;;:6;:20;;;;14352:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14462:1;14441:23;;:9;:23;;;;14433:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14532:1;14523:6;:10;14515:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14603:16;;;;;;;;;;;14600:962;;;14652:41;14667:6;14675:9;14686:6;14652:14;:41::i;:::-;14645:48;;;;14600:962;14746:28;14777:24;14795:4;14777:9;:24::i;:::-;14746:55;;14823:16;;;;;;;;;;;14822:17;:42;;;;;14844:12;:20;14857:6;14844:20;;;;;;;;;;;;;;;;;;;;;;;;;14843:21;14822:42;:67;;;;;14868:21;;;;;;;;;;;14822:67;14818:311;;;14926:25;;;;;;;;;;;14923:98;;;14997:24;;14974:47;;14923:98;15052:6;15040:9;;:18;;;;;;;;;;;;;;;;;;15077:36;15092:20;15077:14;:36::i;:::-;14818:311;15165:53;15187:6;15165:53;;;;;;;;;;;;;;;;;:9;:17;15175:6;15165:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15145:9;:17;15155:6;15145:17;;;;;;;;;;;;;;;:73;;;;15235:19;15258:13;:21;15272:6;15258:21;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;15283:13;:24;15297:9;15283:24;;;;;;;;;;;;;;;;;;;;;;;;;15258:49;15257:139;;15362:34;15370:6;15378:9;15389:6;15362:7;:34::i;:::-;15257:139;;;15353:6;15257:139;15235:161;;15438:37;15463:11;15438:9;:20;15448:9;15438:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15415:9;:20;15425:9;15415:20;;;;;;;;;;;;;;;:60;;;;15514:9;15497:40;;15506:6;15497:40;;;15525:11;15497:40;;;;;;:::i;:::-;;;;;;;;15546:4;15539:11;;;;14240:1329;;;;;;:::o;1541:193::-;1633:7;1666:1;1661;:6;;1669:12;1653:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1693:9;1709:1;1705;:5;;;;:::i;:::-;1693:17;;1730:1;1723:8;;;1541:193;;;;;:::o;1208:181::-;1266:7;1286:9;1302:1;1298;:5;;;;:::i;:::-;1286:17;;1327:1;1322;:6;;1314:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1380:1;1373:8;;;1208:181;;;;:::o;15577:334::-;15670:4;15707:53;15729:6;15707:53;;;;;;;;;;;;;;;;;:9;:17;15717:6;15707:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15687:9;:17;15697:6;15687:17;;;;;;;;;;;;;;;:73;;;;15794:32;15819:6;15794:9;:20;15804:9;15794:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15771:9;:20;15781:9;15771:20;;;;;;;;;;;;;;;:55;;;;15863:9;15842:39;;15851:6;15842:39;;;15874:6;15842:39;;;;;;:::i;:::-;;;;;;;;15899:4;15892:11;;15577:334;;;;;:::o;15921:305::-;9519:4;9500:16;;:23;;;;;;;;;;;;;;;;;;16025:25:::1;16042:7;16025:16;:25::i;:::-;16061:22;16086:21;16061:46;;16140:1;16123:14;:18;16120:96;;;16156:60;16177:22;;;;;;;;;;;16201:14;16156:20;:60::i;:::-;16120:96;15982:244;9565:5:::0;9546:16;;:24;;;;;;;;;;;;;;;;;;15921:305;:::o;16930:602::-;17016:7;17038:17;17058:1;17038:21;;17073:12;:20;17086:6;17073:20;;;;;;;;;;;;;;;;;;;;;;;;;17070:237;;;17122:38;17156:3;17122:29;17133:17;;17122:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;17110:50;;17070:237;;;17204:12;:23;17217:9;17204:23;;;;;;;;;;;;;;;;;;;;;;;;;17201:106;;;17256:39;17291:3;17256:30;17267:18;;17256:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;17244:51;;17201:106;17070:237;17332:1;17320:9;:13;17317:170;;;17374:39;17403:9;17374;:24;17392:4;17374:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17350:9;:21;17368:1;17350:21;;;;;;;;;;;;;;;:63;;;;17458:4;17433:42;;17442:6;17433:42;;;17465:9;17433:42;;;;;;:::i;:::-;;;;;;;;17317:170;17506:21;17517:9;17506:6;:10;;:21;;;;:::i;:::-;17499:28;;;16930:602;;;;;:::o;16234:684::-;16360:21;16398:1;16384:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16360:40;;16429:4;16411;16416:1;16411:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16455:9;;;;;;;;;;;16445:4;16450:1;16445:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;16485:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16475:4;16480:1;16475:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16520:62;16537:4;16552:15;;;;;;;;;;;16570:11;16520:8;:62::i;:::-;16629:15;;;;;;;;;;;:66;;;16706:11;16728:1;16768:4;16791;16823:15;16629:220;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16875:35;16892:11;16905:4;16875:35;;;;;;;:::i;:::-;;;;;;;;16289:629;16234:684;:::o;13510:126::-;13602:9;:18;;:26;13621:6;13602:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13510:126;;:::o;1742:250::-;1800:7;1829:1;1824;:6;1820:47;;;1854:1;1847:8;;;;1820:47;1879:9;1895:1;1891;:5;;;;:::i;:::-;1879:17;;1924:1;1919;1915;:5;;;;:::i;:::-;:10;1907:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1983:1;1976:8;;;1742:250;;;;;:::o;2000:132::-;2058:7;2085:39;2089:1;2092;2085:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2078:46;;2000:132;;;;:::o;1397:136::-;1455:7;1482:43;1486:1;1489;1482:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1475:50;;1397:136;;;;:::o;2140:284::-;2232:7;2264:1;2260;:5;2267:12;2252:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2291:9;2307:1;2303;:5;;;;:::i;:::-;2291:17;;2415:1;2408:8;;;2140:284;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:118::-;4558:24;4576:5;4558:24;:::i;:::-;4553:3;4546:37;4471:118;;:::o;4595:222::-;4688:4;4726:2;4715:9;4711:18;4703:26;;4739:71;4807:1;4796:9;4792:17;4783:6;4739:71;:::i;:::-;4595:222;;;;:::o;4823:86::-;4858:7;4898:4;4891:5;4887:16;4876:27;;4823:86;;;:::o;4915:112::-;4998:22;5014:5;4998:22;:::i;:::-;4993:3;4986:35;4915:112;;:::o;5033:214::-;5122:4;5160:2;5149:9;5145:18;5137:26;;5173:67;5237:1;5226:9;5222:17;5213:6;5173:67;:::i;:::-;5033:214;;;;:::o;5253:329::-;5312:6;5361:2;5349:9;5340:7;5336:23;5332:32;5329:119;;;5367:79;;:::i;:::-;5329:119;5487:1;5512:53;5557:7;5548:6;5537:9;5533:22;5512:53;:::i;:::-;5502:63;;5458:117;5253:329;;;;:::o;5588:::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:180::-;6451:77;6448:1;6441:88;6548:4;6545:1;6538:15;6572:4;6569:1;6562:15;6589:320;6633:6;6670:1;6664:4;6660:12;6650:22;;6717:1;6711:4;6707:12;6738:18;6728:81;;6794:4;6786:6;6782:17;6772:27;;6728:81;6856:2;6848:6;6845:14;6825:18;6822:38;6819:84;;;6875:18;;:::i;:::-;6819:84;6640:269;6589:320;;;:::o;6915:182::-;7055:34;7051:1;7043:6;7039:14;7032:58;6915:182;:::o;7103:366::-;7245:3;7266:67;7330:2;7325:3;7266:67;:::i;:::-;7259:74;;7342:93;7431:3;7342:93;:::i;:::-;7460:2;7455:3;7451:12;7444:19;;7103:366;;;:::o;7475:419::-;7641:4;7679:2;7668:9;7664:18;7656:26;;7728:9;7722:4;7718:20;7714:1;7703:9;7699:17;7692:47;7756:131;7882:4;7756:131;:::i;:::-;7748:139;;7475:419;;;:::o;7900:143::-;7957:5;7988:6;7982:13;7973:22;;8004:33;8031:5;8004:33;:::i;:::-;7900:143;;;;:::o;8049:351::-;8119:6;8168:2;8156:9;8147:7;8143:23;8139:32;8136:119;;;8174:79;;:::i;:::-;8136:119;8294:1;8319:64;8375:7;8366:6;8355:9;8351:22;8319:64;:::i;:::-;8309:74;;8265:128;8049:351;;;;:::o;8406:332::-;8527:4;8565:2;8554:9;8550:18;8542:26;;8578:71;8646:1;8635:9;8631:17;8622:6;8578:71;:::i;:::-;8659:72;8727:2;8716:9;8712:18;8703:6;8659:72;:::i;:::-;8406:332;;;;;:::o;8744:::-;8865:4;8903:2;8892:9;8888:18;8880:26;;8916:71;8984:1;8973:9;8969:17;8960:6;8916:71;:::i;:::-;8997:72;9065:2;9054:9;9050:18;9041:6;8997:72;:::i;:::-;8744:332;;;;;:::o;9082:116::-;9152:21;9167:5;9152:21;:::i;:::-;9145:5;9142:32;9132:60;;9188:1;9185;9178:12;9132:60;9082:116;:::o;9204:137::-;9258:5;9289:6;9283:13;9274:22;;9305:30;9329:5;9305:30;:::i;:::-;9204:137;;;;:::o;9347:345::-;9414:6;9463:2;9451:9;9442:7;9438:23;9434:32;9431:119;;;9469:79;;:::i;:::-;9431:119;9589:1;9614:61;9667:7;9658:6;9647:9;9643:22;9614:61;:::i;:::-;9604:71;;9560:125;9347:345;;;;:::o;9698:225::-;9838:34;9834:1;9826:6;9822:14;9815:58;9907:8;9902:2;9894:6;9890:15;9883:33;9698:225;:::o;9929:366::-;10071:3;10092:67;10156:2;10151:3;10092:67;:::i;:::-;10085:74;;10168:93;10257:3;10168:93;:::i;:::-;10286:2;10281:3;10277:12;10270:19;;9929:366;;;:::o;10301:419::-;10467:4;10505:2;10494:9;10490:18;10482:26;;10554:9;10548:4;10544:20;10540:1;10529:9;10525:17;10518:47;10582:131;10708:4;10582:131;:::i;:::-;10574:139;;10301:419;;;:::o;10726:223::-;10866:34;10862:1;10854:6;10850:14;10843:58;10935:6;10930:2;10922:6;10918:15;10911:31;10726:223;:::o;10955:366::-;11097:3;11118:67;11182:2;11177:3;11118:67;:::i;:::-;11111:74;;11194:93;11283:3;11194:93;:::i;:::-;11312:2;11307:3;11303:12;11296:19;;10955:366;;;:::o;11327:419::-;11493:4;11531:2;11520:9;11516:18;11508:26;;11580:9;11574:4;11570:20;11566:1;11555:9;11551:17;11544:47;11608:131;11734:4;11608:131;:::i;:::-;11600:139;;11327:419;;;:::o;11752:221::-;11892:34;11888:1;11880:6;11876:14;11869:58;11961:4;11956:2;11948:6;11944:15;11937:29;11752:221;:::o;11979:366::-;12121:3;12142:67;12206:2;12201:3;12142:67;:::i;:::-;12135:74;;12218:93;12307:3;12218:93;:::i;:::-;12336:2;12331:3;12327:12;12320:19;;11979:366;;;:::o;12351:419::-;12517:4;12555:2;12544:9;12540:18;12532:26;;12604:9;12598:4;12594:20;12590:1;12579:9;12575:17;12568:47;12632:131;12758:4;12632:131;:::i;:::-;12624:139;;12351:419;;;:::o;12776:224::-;12916:34;12912:1;12904:6;12900:14;12893:58;12985:7;12980:2;12972:6;12968:15;12961:32;12776:224;:::o;13006:366::-;13148:3;13169:67;13233:2;13228:3;13169:67;:::i;:::-;13162:74;;13245:93;13334:3;13245:93;:::i;:::-;13363:2;13358:3;13354:12;13347:19;;13006:366;;;:::o;13378:419::-;13544:4;13582:2;13571:9;13567:18;13559:26;;13631:9;13625:4;13621:20;13617:1;13606:9;13602:17;13595:47;13659:131;13785:4;13659:131;:::i;:::-;13651:139;;13378:419;;;:::o;13803:222::-;13943:34;13939:1;13931:6;13927:14;13920:58;14012:5;14007:2;13999:6;13995:15;13988:30;13803:222;:::o;14031:366::-;14173:3;14194:67;14258:2;14253:3;14194:67;:::i;:::-;14187:74;;14270:93;14359:3;14270:93;:::i;:::-;14388:2;14383:3;14379:12;14372:19;;14031:366;;;:::o;14403:419::-;14569:4;14607:2;14596:9;14592:18;14584:26;;14656:9;14650:4;14646:20;14642:1;14631:9;14627:17;14620:47;14684:131;14810:4;14684:131;:::i;:::-;14676:139;;14403:419;;;:::o;14828:228::-;14968:34;14964:1;14956:6;14952:14;14945:58;15037:11;15032:2;15024:6;15020:15;15013:36;14828:228;:::o;15062:366::-;15204:3;15225:67;15289:2;15284:3;15225:67;:::i;:::-;15218:74;;15301:93;15390:3;15301:93;:::i;:::-;15419:2;15414:3;15410:12;15403:19;;15062:366;;;:::o;15434:419::-;15600:4;15638:2;15627:9;15623:18;15615:26;;15687:9;15681:4;15677:20;15673:1;15662:9;15658:17;15651:47;15715:131;15841:4;15715:131;:::i;:::-;15707:139;;15434:419;;;:::o;15859:180::-;15907:77;15904:1;15897:88;16004:4;16001:1;15994:15;16028:4;16025:1;16018:15;16045:191;16085:4;16105:20;16123:1;16105:20;:::i;:::-;16100:25;;16139:20;16157:1;16139:20;:::i;:::-;16134:25;;16178:1;16175;16172:8;16169:34;;;16183:18;;:::i;:::-;16169:34;16228:1;16225;16221:9;16213:17;;16045:191;;;;:::o;16242:305::-;16282:3;16301:20;16319:1;16301:20;:::i;:::-;16296:25;;16335:20;16353:1;16335:20;:::i;:::-;16330:25;;16489:1;16421:66;16417:74;16414:1;16411:81;16408:107;;;16495:18;;:::i;:::-;16408:107;16539:1;16536;16532:9;16525:16;;16242:305;;;;:::o;16553:177::-;16693:29;16689:1;16681:6;16677:14;16670:53;16553:177;:::o;16736:366::-;16878:3;16899:67;16963:2;16958:3;16899:67;:::i;:::-;16892:74;;16975:93;17064:3;16975:93;:::i;:::-;17093:2;17088:3;17084:12;17077:19;;16736:366;;;:::o;17108:419::-;17274:4;17312:2;17301:9;17297:18;17289:26;;17361:9;17355:4;17351:20;17347:1;17336:9;17332:17;17325:47;17389:131;17515:4;17389:131;:::i;:::-;17381:139;;17108:419;;;:::o;17533:180::-;17581:77;17578:1;17571:88;17678:4;17675:1;17668:15;17702:4;17699:1;17692:15;17719:180;17767:77;17764:1;17757:88;17864:4;17861:1;17854:15;17888:4;17885:1;17878:15;17905:85;17950:7;17979:5;17968:16;;17905:85;;;:::o;17996:60::-;18024:3;18045:5;18038:12;;17996:60;;;:::o;18062:158::-;18120:9;18153:61;18171:42;18180:32;18206:5;18180:32;:::i;:::-;18171:42;:::i;:::-;18153:61;:::i;:::-;18140:74;;18062:158;;;:::o;18226:147::-;18321:45;18360:5;18321:45;:::i;:::-;18316:3;18309:58;18226:147;;:::o;18379:114::-;18446:6;18480:5;18474:12;18464:22;;18379:114;;;:::o;18499:184::-;18598:11;18632:6;18627:3;18620:19;18672:4;18667:3;18663:14;18648:29;;18499:184;;;;:::o;18689:132::-;18756:4;18779:3;18771:11;;18809:4;18804:3;18800:14;18792:22;;18689:132;;;:::o;18827:108::-;18904:24;18922:5;18904:24;:::i;:::-;18899:3;18892:37;18827:108;;:::o;18941:179::-;19010:10;19031:46;19073:3;19065:6;19031:46;:::i;:::-;19109:4;19104:3;19100:14;19086:28;;18941:179;;;;:::o;19126:113::-;19196:4;19228;19223:3;19219:14;19211:22;;19126:113;;;:::o;19275:732::-;19394:3;19423:54;19471:5;19423:54;:::i;:::-;19493:86;19572:6;19567:3;19493:86;:::i;:::-;19486:93;;19603:56;19653:5;19603:56;:::i;:::-;19682:7;19713:1;19698:284;19723:6;19720:1;19717:13;19698:284;;;19799:6;19793:13;19826:63;19885:3;19870:13;19826:63;:::i;:::-;19819:70;;19912:60;19965:6;19912:60;:::i;:::-;19902:70;;19758:224;19745:1;19742;19738:9;19733:14;;19698:284;;;19702:14;19998:3;19991:10;;19399:608;;;19275:732;;;;:::o;20013:831::-;20276:4;20314:3;20303:9;20299:19;20291:27;;20328:71;20396:1;20385:9;20381:17;20372:6;20328:71;:::i;:::-;20409:80;20485:2;20474:9;20470:18;20461:6;20409:80;:::i;:::-;20536:9;20530:4;20526:20;20521:2;20510:9;20506:18;20499:48;20564:108;20667:4;20658:6;20564:108;:::i;:::-;20556:116;;20682:72;20750:2;20739:9;20735:18;20726:6;20682:72;:::i;:::-;20764:73;20832:3;20821:9;20817:19;20808:6;20764:73;:::i;:::-;20013:831;;;;;;;;:::o;20850:483::-;21021:4;21059:2;21048:9;21044:18;21036:26;;21072:71;21140:1;21129:9;21125:17;21116:6;21072:71;:::i;:::-;21190:9;21184:4;21180:20;21175:2;21164:9;21160:18;21153:48;21218:108;21321:4;21312:6;21218:108;:::i;:::-;21210:116;;20850:483;;;;;:::o;21339:348::-;21379:7;21402:20;21420:1;21402:20;:::i;:::-;21397:25;;21436:20;21454:1;21436:20;:::i;:::-;21431:25;;21624:1;21556:66;21552:74;21549:1;21546:81;21541:1;21534:9;21527:17;21523:105;21520:131;;;21631:18;;:::i;:::-;21520:131;21679:1;21676;21672:9;21661:20;;21339:348;;;;:::o;21693:180::-;21741:77;21738:1;21731:88;21838:4;21835:1;21828:15;21862:4;21859:1;21852:15;21879:185;21919:1;21936:20;21954:1;21936:20;:::i;:::-;21931:25;;21970:20;21988:1;21970:20;:::i;:::-;21965:25;;22009:1;21999:35;;22014:18;;:::i;:::-;21999:35;22056:1;22053;22049:9;22044:14;;21879:185;;;;:::o;22070:220::-;22210:34;22206:1;22198:6;22194:14;22187:58;22279:3;22274:2;22266:6;22262:15;22255:28;22070:220;:::o;22296:366::-;22438:3;22459:67;22523:2;22518:3;22459:67;:::i;:::-;22452:74;;22535:93;22624:3;22535:93;:::i;:::-;22653:2;22648:3;22644:12;22637:19;;22296:366;;;:::o;22668:419::-;22834:4;22872:2;22861:9;22857:18;22849:26;;22921:9;22915:4;22911:20;22907:1;22896:9;22892:17;22885:47;22949:131;23075:4;22949:131;:::i;:::-;22941:139;;22668:419;;;:::o

Swarm Source

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