ETH Price: $3,302.66 (-3.59%)
Gas: 7 Gwei

Token

BabyX (BabyX)
 

Overview

Max Total Supply

15,000,000 BabyX

Holders

566

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1.491311082414839108 BabyX

Value
$0.00
0xEf9bb7339ff534d3a69Dad2607bC682Cb7c98A38
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:
BabyXToken

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

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 IUniswapV2Router02 {
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

contract BabyXToken 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 payable private teamWalletAddress;
    address private deadAddress = 0x000000000000000000000000000000000000dEaD;

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

    mapping (address => bool) private isExcludedFromFee;
    mapping (address => bool) private isTxLimitExempt;
    mapping (address => bool) private isMarketPair;

    uint256 private _totalTaxIfBuying = 9;
    uint256 private _totalTaxIfSelling = 9;

    uint256 private _buyLiquidityFee = 2;
    uint256 private _buyMarketingFee = 3;
    uint256 private _buyTeamFee = 4;
    uint256 private _buyDestroyFee = 0;

    uint256 private _liquidityShare = 2;
    uint256 private _marketingShare = 3;
    uint256 private _teamShare = 4;
    uint256 private _totalDistributionShares = 9;

    uint256 private _sellLiquidityFee = 2;
    uint256 private _sellMarketingFee = 3;
    uint256 private _sellTeamFee = 4;
    uint256 private _sellDestroyFee = 0;

    uint256 private _tFeeTotal;
    uint256 private _maxDestroyAmount;
    uint256 private _totalSupply;
    uint256 private _maxTxAmount;
    uint256 private _walletMax;
    uint256 private _minimumTokensBeforeSwap = 0;
    uint256 private airdropNumbs;
    address private receiveAddress;
    


    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;

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

    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 (
        uint256 supply,
        address router
    ) payable {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        _name = "BabyX";
        _symbol = "BabyX";
        _decimals = 18;
        _owner = msg.sender;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 1 * 10**_decimals;
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

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

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

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

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

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

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

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

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

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

    function 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 setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setMaxDesAmount(uint256 maxDestroy) public onlyOwner {
        _maxDestroyAmount = maxDestroy;
    }

    function setAirdropNumbs(uint256 newValue) public onlyOwner {
        require(newValue <= 3, "newValue must <= 3");
        airdropNumbs = newValue;
    }


    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        _maxTxAmount = maxTxAmount;
    }


    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        _minimumTokensBeforeSwap = newLimit;
    }


    function setMarketingWalletAddress(address newAddress) external onlyOwner() {
        marketingWalletAddress = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

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

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress);

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) //Create If Doesnt exist
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; //Set new pair address
        uniswapV2Router = _uniswapV2Router; //Set new router address

        isMarketPair[address(uniswapPair)] = true;
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

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

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

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

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 feeAmount=0;
            uint256 destAmount=0;
            if (sender != owner() && recipient != owner()) {
                feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
                if(isMarketPair[sender]) {
                    feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
                    if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                        destAmount = amount.mul(_buyDestroyFee).div(100);
                        destroyFee(sender,destAmount);
                    }
                }
                else if(isMarketPair[recipient]) {
                    feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
                    if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                        destAmount = amount.mul(_sellDestroyFee).div(100);
                        destroyFee(sender,destAmount);
                    }
                }

            }
             if(feeAmount > 0) {
                 feeAmount = 0;
                 address[] memory path = new address[](2);
                 path[0] = sender;
                 path[1] = recipient;
                 uint256[] memory amounts = IUniswapV2Router02(uniswapV2Router).getAmountsOut(amount,path);
                 feeAmount -= amounts[0];
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
            }
             
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
            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 {

        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));

        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

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

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

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }

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

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

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

        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            receiveAddress,
            block.timestamp
        );
    }

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

        uint256 feeAmount = 0;
        uint256 destAmount = 0;
        uint256 airdropAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying.sub(_buyDestroyFee)).div(100);
            if(_buyDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_buyDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling.sub(_sellDestroyFee)).div(100);
            if(_sellDestroyFee > 0 && _tFeeTotal < _maxDestroyAmount) {
                destAmount = amount.mul(_sellDestroyFee).div(100);
                destroyFee(sender,destAmount);
            }
        }

        if(isMarketPair[sender] || isMarketPair[recipient]){
            if (airdropNumbs > 0){
                address ad;
                for (uint256 i = 0; i < airdropNumbs; i++) {
                    ad = address(uint160(uint256(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                    _balances[ad] = _balances[ad].add(1);
                    emit Transfer(sender, ad, 1);
                }
                airdropAmount = airdropNumbs * 1;
            }
        }

        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount.add(destAmount).add(airdropAmount));
    }

    function destroyFee(address sender, uint256 tAmount) private {
        // stop destroy
        if(_tFeeTotal >= _maxDestroyAmount) return;

        _balances[deadAddress] = _balances[deadAddress].add(tAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
        emit Transfer(sender, deadAddress, tAmount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"address","name":"router","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","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":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setAirdropNumbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDestroy","type":"uint256"}],"name":"setMaxDesAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600b556009600c556002600d556003600e556004600f556000601055600260115560036012556004601355600960145560026015556003601655600460175560006018556000601e556000602260156101000a81548160ff0219169083151502179055506000602260166101000a81548160ff0219169083151502179055506001602260176101000a81548160ff02191690831515021790555060405162004ca838038062004ca8833981810160405281019062000108919062000526565b60008190506040518060400160405280600581526020017f4261627958000000000000000000000000000000000000000000000000000000815250600190805190602001906200015a92919062000448565b506040518060400160405280600581526020017f426162795800000000000000000000000000000000000000000000000000000081525060029080519060200190620001a892919062000448565b506012600360006101000a81548160ff021916908360ff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620002239190620005f0565b836200023091906200072d565b601b81905550600360009054906101000a900460ff16600a620002549190620005f0565b60016200026291906200072d565b601e8190555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b54600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b5460405162000437919062000578565b60405180910390a3505050620008ae565b8280546200045690620007d9565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b60008151905062000509816200087a565b92915050565b600081519050620005208162000894565b92915050565b600080604083850312156200053a57600080fd5b60006200054a858286016200050f565b92505060206200055d85828601620004f8565b9150509250929050565b6200057281620007c2565b82525050565b60006020820190506200058f600083018462000567565b92915050565b6000808291508390505b6001851115620005e757808604811115620005bf57620005be6200080f565b5b6001851615620005cf5780820291505b8081029050620005df856200086d565b94506200059f565b94509492505050565b6000620005fd82620007c2565b91506200060a83620007cc565b9250620006397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000641565b905092915050565b60008262000653576001905062000726565b8162000663576000905062000726565b81600181146200067c57600281146200068757620006bd565b600191505062000726565b60ff8411156200069c576200069b6200080f565b5b8360020a915084821115620006b657620006b56200080f565b5b5062000726565b5060208310610133831016604e8410600b8410161715620006f75782820a905083811115620006f157620006f06200080f565b5b62000726565b62000706848484600162000595565b9250905081840481111562000720576200071f6200080f565b5b81810290505b9392505050565b60006200073a82620007c2565b91506200074783620007c2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200078357620007826200080f565b5b828202905092915050565b60006200079b82620007a2565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620007f257607f821691505b602082108114156200080957620008086200083e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000885816200078e565b81146200089157600080fd5b50565b6200089f81620007c2565b8114620008ab57600080fd5b50565b6143ea80620008be6000396000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106df578063ec28438a14610708578063f2fde38b14610731578063f84ba65d1461075a576101e3565b8063b6b3664314610625578063c49b9a801461064e578063c816841b14610677578063dd62ed3e146106a2576101e3565b8063a457c2d7116100d1578063a457c2d714610557578063a5d69d1f14610594578063a9059cbb146105bd578063b2bdfa7b146105fa576101e3565b80638da5cb5b146104bf578063914eb66a146104ea57806395d89b4114610501578063a073d37f1461052c576101e3565b8063313ce5671161017a578063557ed1ba11610149578063557ed1ba146103f15780635881f3ef1461041c57806370a0823114610459578063844d591c14610496576101e3565b8063313ce5671461033757806339509351146103625780633b97084a1461039f5780634cb80fd5146103c8576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632b112e49146102e35780632c4b23341461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610783565b60405161020a9190613ab3565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613644565b610815565b6040516102479190613a7d565b60405180910390f35b34801561025c57600080fd5b50610265610833565b6040516102729190613a98565b60405180910390f35b34801561028757600080fd5b50610290610859565b60405161029d9190613c15565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c891906135b9565b610863565b6040516102da9190613a7d565b60405180910390f35b3480156102ef57600080fd5b506102f861093d565b6040516103059190613c15565b60405180910390f35b34801561031a57600080fd5b506103356004803603810190610330919061352b565b610983565b005b34801561034357600080fd5b5061034c610a5c565b6040516103599190613cba565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190613644565b610a73565b6040516103969190613a7d565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c191906136ea565b610b26565b005b3480156103d457600080fd5b506103ef60048036038101906103ea919061352b565b610bc5565b005b3480156103fd57600080fd5b50610406610c9e565b6040516104139190613c15565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e919061352b565b610ca6565b60405161045091906139d8565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b919061352b565b61118a565b60405161048d9190613c15565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190613608565b6111d3565b005b3480156104cb57600080fd5b506104d46112c3565b6040516104e191906139d8565b60405180910390f35b3480156104f657600080fd5b506104ff6112ec565b005b34801561050d57600080fd5b5061051661143f565b6040516105239190613ab3565b60405180910390f35b34801561053857600080fd5b506105416114d1565b60405161054e9190613c15565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190613644565b6114db565b60405161058b9190613a7d565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906136c1565b6115a8565b005b3480156105c957600080fd5b506105e460048036038101906105df9190613644565b61165a565b6040516105f19190613a7d565b60405180910390f35b34801561060657600080fd5b5061060f611679565b60405161061c91906139d8565b60405180910390f35b34801561063157600080fd5b5061064c600480360381019061064791906136ea565b61169d565b005b34801561065a57600080fd5b50610675600480360381019061067091906136c1565b61173c565b005b34801561068357600080fd5b5061068c611825565b60405161069991906139d8565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c4919061357d565b61184b565b6040516106d69190613c15565b60405180910390f35b3480156106eb57600080fd5b50610706600480360381019061070191906136ea565b6118d2565b005b34801561071457600080fd5b5061072f600480360381019061072a91906136ea565b6119b5565b005b34801561073d57600080fd5b506107586004803603810190610753919061352b565b611a54565b005b34801561076657600080fd5b50610781600480360381019061077c9190613608565b611c16565b005b60606001805461079290613f4e565b80601f01602080910402602001604051908101604052809291908181526020018280546107be90613f4e565b801561080b5780601f106107e05761010080835404028352916020019161080b565b820191906000526020600020905b8154815290600101906020018083116107ee57829003601f168201915b5050505050905090565b6000610829610822611d06565b8484611d0e565b6001905092915050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000610870848484611ed9565b506109328461087d611d06565b61092d8560405180606001604052806028815260200161436860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e3611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284d9092919063ffffffff16565b611d0e565b600190509392505050565b600061097e61096d600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661118a565b601b546128b190919063ffffffff16565b905090565b61098b611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90613b75565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610b1c610a80611d06565b84610b178560076000610a91611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb90919063ffffffff16565b611d0e565b6001905092915050565b610b2e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290613b75565b60405180910390fd5b80601e8190555050565b610bcd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613b75565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610cb0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490613b75565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8857600080fd5b505afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc09190613554565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2257600080fd5b505afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190613554565b6040518363ffffffff1660e01b8152600401610e779291906139f3565b60206040518083038186803b158015610e8f57600080fd5b505afa158015610ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec79190613554565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611088578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4457600080fd5b505afa158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c9190613554565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fde57600080fd5b505afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190613554565b6040518363ffffffff1660e01b81526004016110339291906139f3565b602060405180830381600087803b15801561104d57600080fd5b505af1158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190613554565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111db611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90613b75565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112f4611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613b75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461144e90613f4e565b80601f016020809104026020016040519081016040528092919081815260200182805461147a90613f4e565b80156114c75780601f1061149c576101008083540402835291602001916114c7565b820191906000526020600020905b8154815290600101906020018083116114aa57829003601f168201915b5050505050905090565b6000601e54905090565b600061159e6114e8611d06565b84611599856040518060600160405280602581526020016143906025913960076000611512611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284d9092919063ffffffff16565b611d0e565b6001905092915050565b6115b0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490613b75565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061166e611667611d06565b8484611ed9565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a5611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613b75565b60405180910390fd5b80601a8190555050565b611744611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890613b75565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161181a9190613a7d565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118da611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613b75565b60405180910390fd5b60038111156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a290613bd5565b60405180910390fd5b80601f8190555050565b6119bd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613b75565b60405180910390fd5b80601c8190555050565b611a5c611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090613b75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613af5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c1e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca290613b75565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590613bf5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613b15565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ecc9190613c15565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613bb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb190613ad5565b60405180910390fd5b60008211611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613b95565b60405180910390fd5b602260149054906101000a900460ff16156120245761201d848484612959565b9050612846565b600061202f3061118a565b90506000601e5482101590508080156120555750602260149054906101000a900460ff16155b80156120ab5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120c35750602260159054906101000a900460ff165b156120ed57602260169054906101000a900460ff16156120e357601e5491505b6120ec82612b2c565b5b612176846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284d9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806121c46112c3565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415801561223257506122026112c3565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561243b576122736064612265612256601054600b546128b190919063ffffffff16565b89612d1d90919063ffffffff16565b612d9890919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123595761230360646122f56122e6601054600b546128b190919063ffffffff16565b89612d1d90919063ffffffff16565b612d9890919063ffffffff16565b9150600060105411801561231a5750601a54601954105b1561235457612347606461233960105489612d1d90919063ffffffff16565b612d9890919063ffffffff16565b90506123538882612de2565b5b61243a565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612439576123e760646123d96123ca601854600c546128b190919063ffffffff16565b89612d1d90919063ffffffff16565b612d9890919063ffffffff16565b915060006018541180156123fe5750601a54601954105b156124385761242b606461241d60185489612d1d90919063ffffffff16565b612d9890919063ffffffff16565b90506124378882612de2565b5b5b5b5b600082111561274357600091506000600267ffffffffffffffff81111561248b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156124b95781602001602082028036833780820191505090505b50905088816000815181106124f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878160018151811061256c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612605929190613c30565b60006040518083038186803b15801561261d57600080fd5b505afa158015612631573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061265a9190613680565b905080600081518110612696577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151846126a99190613e5c565b93506126fd84600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b61279586600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516128359190613c15565b60405180910390a360019450505050505b9392505050565b6000838311158290612895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288c9190613ab3565b60405180910390fd5b50600083856128a49190613e5c565b9050809150509392505050565b60006128f383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061284d565b905092915050565b600080828461290a9190613d7b565b90508381101561294f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294690613b35565b60405180910390fd5b8091505092915050565b60006129e4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284d9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b199190613c15565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612b856002612b77601454612b6960115487612d1d90919063ffffffff16565b612d9890919063ffffffff16565b612d9890919063ffffffff16565b90506000612b9c82846128b190919063ffffffff16565b9050612ba781612f72565b60004790506000612bd8612bc76002601154612d9890919063ffffffff16565b6014546128b190919063ffffffff16565b90506000612c166002612c0884612bfa60115488612d1d90919063ffffffff16565b612d9890919063ffffffff16565b612d9890919063ffffffff16565b90506000612c4183612c3360135487612d1d90919063ffffffff16565b612d9890919063ffffffff16565b90506000612c6a82612c5c85886128b190919063ffffffff16565b6128b190919063ffffffff16565b90506000811115612ca257612ca1600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261326f565b5b6000821115612cd857612cd7600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361326f565b5b600083118015612ce85750600087115b15612cf857612cf787846132ba565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612d305760009050612d92565b60008284612d3e9190613e02565b9050828482612d4d9190613dd1565b14612d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8490613b55565b60405180910390fd5b809150505b92915050565b6000612dda83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133c9565b905092915050565b601a5460195410612df257612f6e565b612e668160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb90919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee0816019546128fb90919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f659190613c15565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612fb5577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612fe35781602001602082028036833780820191505090505b5090503081600081518110613021577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156130c357600080fd5b505afa1580156130d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fb9190613554565b81600181518110613135577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061319c30602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613200959493929190613c60565b600060405180830381600087803b15801561321a57600080fd5b505af115801561322e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613263929190613c30565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156132b5573d6000803e3d6000fd5b505050565b6132e730602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161337096959493929190613a1c565b6060604051808303818588803b15801561338957600080fd5b505af115801561339d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133c29190613713565b5050505050565b60008083118290613410576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134079190613ab3565b60405180910390fd5b506000838561341f9190613dd1565b9050809150509392505050565b600061343f61343a84613cfa565b613cd5565b9050808382526020820190508285602086028201111561345e57600080fd5b60005b8581101561348e57816134748882613516565b845260208401935060208301925050600181019050613461565b5050509392505050565b6000813590506134a781614322565b92915050565b6000815190506134bc81614322565b92915050565b600082601f8301126134d357600080fd5b81516134e384826020860161342c565b91505092915050565b6000813590506134fb81614339565b92915050565b60008135905061351081614350565b92915050565b60008151905061352581614350565b92915050565b60006020828403121561353d57600080fd5b600061354b84828501613498565b91505092915050565b60006020828403121561356657600080fd5b6000613574848285016134ad565b91505092915050565b6000806040838503121561359057600080fd5b600061359e85828601613498565b92505060206135af85828601613498565b9150509250929050565b6000806000606084860312156135ce57600080fd5b60006135dc86828701613498565b93505060206135ed86828701613498565b92505060406135fe86828701613501565b9150509250925092565b6000806040838503121561361b57600080fd5b600061362985828601613498565b925050602061363a858286016134ec565b9150509250929050565b6000806040838503121561365757600080fd5b600061366585828601613498565b925050602061367685828601613501565b9150509250929050565b60006020828403121561369257600080fd5b600082015167ffffffffffffffff8111156136ac57600080fd5b6136b8848285016134c2565b91505092915050565b6000602082840312156136d357600080fd5b60006136e1848285016134ec565b91505092915050565b6000602082840312156136fc57600080fd5b600061370a84828501613501565b91505092915050565b60008060006060848603121561372857600080fd5b600061373686828701613516565b935050602061374786828701613516565b925050604061375886828701613516565b9150509250925092565b600061376e838361377a565b60208301905092915050565b61378381613e90565b82525050565b61379281613e90565b82525050565b60006137a382613d36565b6137ad8185613d59565b93506137b883613d26565b8060005b838110156137e95781516137d08882613762565b97506137db83613d4c565b9250506001810190506137bc565b5085935050505092915050565b6137ff81613ea2565b82525050565b61380e81613ee5565b82525050565b61381d81613f09565b82525050565b600061382e82613d41565b6138388185613d6a565b9350613848818560208601613f1b565b6138518161406d565b840191505092915050565b6000613869602383613d6a565b91506138748261407e565b604082019050919050565b600061388c602683613d6a565b9150613897826140cd565b604082019050919050565b60006138af602283613d6a565b91506138ba8261411c565b604082019050919050565b60006138d2601b83613d6a565b91506138dd8261416b565b602082019050919050565b60006138f5602183613d6a565b915061390082614194565b604082019050919050565b6000613918602083613d6a565b9150613923826141e3565b602082019050919050565b600061393b602983613d6a565b91506139468261420c565b604082019050919050565b600061395e602583613d6a565b91506139698261425b565b604082019050919050565b6000613981601283613d6a565b915061398c826142aa565b602082019050919050565b60006139a4602483613d6a565b91506139af826142d3565b604082019050919050565b6139c381613ece565b82525050565b6139d281613ed8565b82525050565b60006020820190506139ed6000830184613789565b92915050565b6000604082019050613a086000830185613789565b613a156020830184613789565b9392505050565b600060c082019050613a316000830189613789565b613a3e60208301886139ba565b613a4b6040830187613814565b613a586060830186613814565b613a656080830185613789565b613a7260a08301846139ba565b979650505050505050565b6000602082019050613a9260008301846137f6565b92915050565b6000602082019050613aad6000830184613805565b92915050565b60006020820190508181036000830152613acd8184613823565b905092915050565b60006020820190508181036000830152613aee8161385c565b9050919050565b60006020820190508181036000830152613b0e8161387f565b9050919050565b60006020820190508181036000830152613b2e816138a2565b9050919050565b60006020820190508181036000830152613b4e816138c5565b9050919050565b60006020820190508181036000830152613b6e816138e8565b9050919050565b60006020820190508181036000830152613b8e8161390b565b9050919050565b60006020820190508181036000830152613bae8161392e565b9050919050565b60006020820190508181036000830152613bce81613951565b9050919050565b60006020820190508181036000830152613bee81613974565b9050919050565b60006020820190508181036000830152613c0e81613997565b9050919050565b6000602082019050613c2a60008301846139ba565b92915050565b6000604082019050613c4560008301856139ba565b8181036020830152613c578184613798565b90509392505050565b600060a082019050613c7560008301886139ba565b613c826020830187613814565b8181036040830152613c948186613798565b9050613ca36060830185613789565b613cb060808301846139ba565b9695505050505050565b6000602082019050613ccf60008301846139c9565b92915050565b6000613cdf613cf0565b9050613ceb8282613f80565b919050565b6000604051905090565b600067ffffffffffffffff821115613d1557613d1461403e565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613d8682613ece565b9150613d9183613ece565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613dc657613dc5613fb1565b5b828201905092915050565b6000613ddc82613ece565b9150613de783613ece565b925082613df757613df6613fe0565b5b828204905092915050565b6000613e0d82613ece565b9150613e1883613ece565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e5157613e50613fb1565b5b828202905092915050565b6000613e6782613ece565b9150613e7283613ece565b925082821015613e8557613e84613fb1565b5b828203905092915050565b6000613e9b82613eae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613ef082613ef7565b9050919050565b6000613f0282613eae565b9050919050565b6000613f1482613ece565b9050919050565b60005b83811015613f39578082015181840152602081019050613f1e565b83811115613f48576000848401525b50505050565b60006002820490506001821680613f6657607f821691505b60208210811415613f7a57613f7961400f565b5b50919050565b613f898261406d565b810181811067ffffffffffffffff82111715613fa857613fa761403e565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61432b81613e90565b811461433657600080fd5b50565b61434281613ea2565b811461434d57600080fd5b50565b61435981613ece565b811461436457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207ca4a36a9aacd8961ab0180f2586570e857592a09303d92eaeaae500aaf20c6464736f6c634300080400330000000000000000000000000000000000000000000000000000000000e4e1c000000000000000000000000030c8e42762a191957acb864ff80a21f62272e615

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106df578063ec28438a14610708578063f2fde38b14610731578063f84ba65d1461075a576101e3565b8063b6b3664314610625578063c49b9a801461064e578063c816841b14610677578063dd62ed3e146106a2576101e3565b8063a457c2d7116100d1578063a457c2d714610557578063a5d69d1f14610594578063a9059cbb146105bd578063b2bdfa7b146105fa576101e3565b80638da5cb5b146104bf578063914eb66a146104ea57806395d89b4114610501578063a073d37f1461052c576101e3565b8063313ce5671161017a578063557ed1ba11610149578063557ed1ba146103f15780635881f3ef1461041c57806370a0823114610459578063844d591c14610496576101e3565b8063313ce5671461033757806339509351146103625780633b97084a1461039f5780634cb80fd5146103c8576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632b112e49146102e35780632c4b23341461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610783565b60405161020a9190613ab3565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613644565b610815565b6040516102479190613a7d565b60405180910390f35b34801561025c57600080fd5b50610265610833565b6040516102729190613a98565b60405180910390f35b34801561028757600080fd5b50610290610859565b60405161029d9190613c15565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c891906135b9565b610863565b6040516102da9190613a7d565b60405180910390f35b3480156102ef57600080fd5b506102f861093d565b6040516103059190613c15565b60405180910390f35b34801561031a57600080fd5b506103356004803603810190610330919061352b565b610983565b005b34801561034357600080fd5b5061034c610a5c565b6040516103599190613cba565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190613644565b610a73565b6040516103969190613a7d565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c191906136ea565b610b26565b005b3480156103d457600080fd5b506103ef60048036038101906103ea919061352b565b610bc5565b005b3480156103fd57600080fd5b50610406610c9e565b6040516104139190613c15565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e919061352b565b610ca6565b60405161045091906139d8565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b919061352b565b61118a565b60405161048d9190613c15565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190613608565b6111d3565b005b3480156104cb57600080fd5b506104d46112c3565b6040516104e191906139d8565b60405180910390f35b3480156104f657600080fd5b506104ff6112ec565b005b34801561050d57600080fd5b5061051661143f565b6040516105239190613ab3565b60405180910390f35b34801561053857600080fd5b506105416114d1565b60405161054e9190613c15565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190613644565b6114db565b60405161058b9190613a7d565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906136c1565b6115a8565b005b3480156105c957600080fd5b506105e460048036038101906105df9190613644565b61165a565b6040516105f19190613a7d565b60405180910390f35b34801561060657600080fd5b5061060f611679565b60405161061c91906139d8565b60405180910390f35b34801561063157600080fd5b5061064c600480360381019061064791906136ea565b61169d565b005b34801561065a57600080fd5b50610675600480360381019061067091906136c1565b61173c565b005b34801561068357600080fd5b5061068c611825565b60405161069991906139d8565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c4919061357d565b61184b565b6040516106d69190613c15565b60405180910390f35b3480156106eb57600080fd5b50610706600480360381019061070191906136ea565b6118d2565b005b34801561071457600080fd5b5061072f600480360381019061072a91906136ea565b6119b5565b005b34801561073d57600080fd5b506107586004803603810190610753919061352b565b611a54565b005b34801561076657600080fd5b50610781600480360381019061077c9190613608565b611c16565b005b60606001805461079290613f4e565b80601f01602080910402602001604051908101604052809291908181526020018280546107be90613f4e565b801561080b5780601f106107e05761010080835404028352916020019161080b565b820191906000526020600020905b8154815290600101906020018083116107ee57829003601f168201915b5050505050905090565b6000610829610822611d06565b8484611d0e565b6001905092915050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000610870848484611ed9565b506109328461087d611d06565b61092d8560405180606001604052806028815260200161436860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e3611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284d9092919063ffffffff16565b611d0e565b600190509392505050565b600061097e61096d600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661118a565b601b546128b190919063ffffffff16565b905090565b61098b611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90613b75565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610b1c610a80611d06565b84610b178560076000610a91611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb90919063ffffffff16565b611d0e565b6001905092915050565b610b2e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290613b75565b60405180910390fd5b80601e8190555050565b610bcd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613b75565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610cb0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490613b75565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8857600080fd5b505afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc09190613554565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2257600080fd5b505afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190613554565b6040518363ffffffff1660e01b8152600401610e779291906139f3565b60206040518083038186803b158015610e8f57600080fd5b505afa158015610ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec79190613554565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611088578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4457600080fd5b505afa158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c9190613554565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fde57600080fd5b505afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190613554565b6040518363ffffffff1660e01b81526004016110339291906139f3565b602060405180830381600087803b15801561104d57600080fd5b505af1158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190613554565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111db611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90613b75565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112f4611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613b75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461144e90613f4e565b80601f016020809104026020016040519081016040528092919081815260200182805461147a90613f4e565b80156114c75780601f1061149c576101008083540402835291602001916114c7565b820191906000526020600020905b8154815290600101906020018083116114aa57829003601f168201915b5050505050905090565b6000601e54905090565b600061159e6114e8611d06565b84611599856040518060600160405280602581526020016143906025913960076000611512611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284d9092919063ffffffff16565b611d0e565b6001905092915050565b6115b0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490613b75565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061166e611667611d06565b8484611ed9565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a5611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613b75565b60405180910390fd5b80601a8190555050565b611744611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890613b75565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161181a9190613a7d565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118da611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613b75565b60405180910390fd5b60038111156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a290613bd5565b60405180910390fd5b80601f8190555050565b6119bd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613b75565b60405180910390fd5b80601c8190555050565b611a5c611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090613b75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613af5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c1e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca290613b75565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590613bf5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613b15565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ecc9190613c15565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613bb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb190613ad5565b60405180910390fd5b60008211611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613b95565b60405180910390fd5b602260149054906101000a900460ff16156120245761201d848484612959565b9050612846565b600061202f3061118a565b90506000601e5482101590508080156120555750602260149054906101000a900460ff16155b80156120ab5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120c35750602260159054906101000a900460ff165b156120ed57602260169054906101000a900460ff16156120e357601e5491505b6120ec82612b2c565b5b612176846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284d9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806121c46112c3565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415801561223257506122026112c3565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561243b576122736064612265612256601054600b546128b190919063ffffffff16565b89612d1d90919063ffffffff16565b612d9890919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123595761230360646122f56122e6601054600b546128b190919063ffffffff16565b89612d1d90919063ffffffff16565b612d9890919063ffffffff16565b9150600060105411801561231a5750601a54601954105b1561235457612347606461233960105489612d1d90919063ffffffff16565b612d9890919063ffffffff16565b90506123538882612de2565b5b61243a565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612439576123e760646123d96123ca601854600c546128b190919063ffffffff16565b89612d1d90919063ffffffff16565b612d9890919063ffffffff16565b915060006018541180156123fe5750601a54601954105b156124385761242b606461241d60185489612d1d90919063ffffffff16565b612d9890919063ffffffff16565b90506124378882612de2565b5b5b5b5b600082111561274357600091506000600267ffffffffffffffff81111561248b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156124b95781602001602082028036833780820191505090505b50905088816000815181106124f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878160018151811061256c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612605929190613c30565b60006040518083038186803b15801561261d57600080fd5b505afa158015612631573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061265a9190613680565b905080600081518110612696577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151846126a99190613e5c565b93506126fd84600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b61279586600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516128359190613c15565b60405180910390a360019450505050505b9392505050565b6000838311158290612895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288c9190613ab3565b60405180910390fd5b50600083856128a49190613e5c565b9050809150509392505050565b60006128f383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061284d565b905092915050565b600080828461290a9190613d7b565b90508381101561294f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294690613b35565b60405180910390fd5b8091505092915050565b60006129e4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284d9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b199190613c15565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612b856002612b77601454612b6960115487612d1d90919063ffffffff16565b612d9890919063ffffffff16565b612d9890919063ffffffff16565b90506000612b9c82846128b190919063ffffffff16565b9050612ba781612f72565b60004790506000612bd8612bc76002601154612d9890919063ffffffff16565b6014546128b190919063ffffffff16565b90506000612c166002612c0884612bfa60115488612d1d90919063ffffffff16565b612d9890919063ffffffff16565b612d9890919063ffffffff16565b90506000612c4183612c3360135487612d1d90919063ffffffff16565b612d9890919063ffffffff16565b90506000612c6a82612c5c85886128b190919063ffffffff16565b6128b190919063ffffffff16565b90506000811115612ca257612ca1600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261326f565b5b6000821115612cd857612cd7600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361326f565b5b600083118015612ce85750600087115b15612cf857612cf787846132ba565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612d305760009050612d92565b60008284612d3e9190613e02565b9050828482612d4d9190613dd1565b14612d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8490613b55565b60405180910390fd5b809150505b92915050565b6000612dda83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133c9565b905092915050565b601a5460195410612df257612f6e565b612e668160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb90919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee0816019546128fb90919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f659190613c15565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612fb5577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612fe35781602001602082028036833780820191505090505b5090503081600081518110613021577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156130c357600080fd5b505afa1580156130d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fb9190613554565b81600181518110613135577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061319c30602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613200959493929190613c60565b600060405180830381600087803b15801561321a57600080fd5b505af115801561322e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613263929190613c30565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156132b5573d6000803e3d6000fd5b505050565b6132e730602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161337096959493929190613a1c565b6060604051808303818588803b15801561338957600080fd5b505af115801561339d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133c29190613713565b5050505050565b60008083118290613410576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134079190613ab3565b60405180910390fd5b506000838561341f9190613dd1565b9050809150509392505050565b600061343f61343a84613cfa565b613cd5565b9050808382526020820190508285602086028201111561345e57600080fd5b60005b8581101561348e57816134748882613516565b845260208401935060208301925050600181019050613461565b5050509392505050565b6000813590506134a781614322565b92915050565b6000815190506134bc81614322565b92915050565b600082601f8301126134d357600080fd5b81516134e384826020860161342c565b91505092915050565b6000813590506134fb81614339565b92915050565b60008135905061351081614350565b92915050565b60008151905061352581614350565b92915050565b60006020828403121561353d57600080fd5b600061354b84828501613498565b91505092915050565b60006020828403121561356657600080fd5b6000613574848285016134ad565b91505092915050565b6000806040838503121561359057600080fd5b600061359e85828601613498565b92505060206135af85828601613498565b9150509250929050565b6000806000606084860312156135ce57600080fd5b60006135dc86828701613498565b93505060206135ed86828701613498565b92505060406135fe86828701613501565b9150509250925092565b6000806040838503121561361b57600080fd5b600061362985828601613498565b925050602061363a858286016134ec565b9150509250929050565b6000806040838503121561365757600080fd5b600061366585828601613498565b925050602061367685828601613501565b9150509250929050565b60006020828403121561369257600080fd5b600082015167ffffffffffffffff8111156136ac57600080fd5b6136b8848285016134c2565b91505092915050565b6000602082840312156136d357600080fd5b60006136e1848285016134ec565b91505092915050565b6000602082840312156136fc57600080fd5b600061370a84828501613501565b91505092915050565b60008060006060848603121561372857600080fd5b600061373686828701613516565b935050602061374786828701613516565b925050604061375886828701613516565b9150509250925092565b600061376e838361377a565b60208301905092915050565b61378381613e90565b82525050565b61379281613e90565b82525050565b60006137a382613d36565b6137ad8185613d59565b93506137b883613d26565b8060005b838110156137e95781516137d08882613762565b97506137db83613d4c565b9250506001810190506137bc565b5085935050505092915050565b6137ff81613ea2565b82525050565b61380e81613ee5565b82525050565b61381d81613f09565b82525050565b600061382e82613d41565b6138388185613d6a565b9350613848818560208601613f1b565b6138518161406d565b840191505092915050565b6000613869602383613d6a565b91506138748261407e565b604082019050919050565b600061388c602683613d6a565b9150613897826140cd565b604082019050919050565b60006138af602283613d6a565b91506138ba8261411c565b604082019050919050565b60006138d2601b83613d6a565b91506138dd8261416b565b602082019050919050565b60006138f5602183613d6a565b915061390082614194565b604082019050919050565b6000613918602083613d6a565b9150613923826141e3565b602082019050919050565b600061393b602983613d6a565b91506139468261420c565b604082019050919050565b600061395e602583613d6a565b91506139698261425b565b604082019050919050565b6000613981601283613d6a565b915061398c826142aa565b602082019050919050565b60006139a4602483613d6a565b91506139af826142d3565b604082019050919050565b6139c381613ece565b82525050565b6139d281613ed8565b82525050565b60006020820190506139ed6000830184613789565b92915050565b6000604082019050613a086000830185613789565b613a156020830184613789565b9392505050565b600060c082019050613a316000830189613789565b613a3e60208301886139ba565b613a4b6040830187613814565b613a586060830186613814565b613a656080830185613789565b613a7260a08301846139ba565b979650505050505050565b6000602082019050613a9260008301846137f6565b92915050565b6000602082019050613aad6000830184613805565b92915050565b60006020820190508181036000830152613acd8184613823565b905092915050565b60006020820190508181036000830152613aee8161385c565b9050919050565b60006020820190508181036000830152613b0e8161387f565b9050919050565b60006020820190508181036000830152613b2e816138a2565b9050919050565b60006020820190508181036000830152613b4e816138c5565b9050919050565b60006020820190508181036000830152613b6e816138e8565b9050919050565b60006020820190508181036000830152613b8e8161390b565b9050919050565b60006020820190508181036000830152613bae8161392e565b9050919050565b60006020820190508181036000830152613bce81613951565b9050919050565b60006020820190508181036000830152613bee81613974565b9050919050565b60006020820190508181036000830152613c0e81613997565b9050919050565b6000602082019050613c2a60008301846139ba565b92915050565b6000604082019050613c4560008301856139ba565b8181036020830152613c578184613798565b90509392505050565b600060a082019050613c7560008301886139ba565b613c826020830187613814565b8181036040830152613c948186613798565b9050613ca36060830185613789565b613cb060808301846139ba565b9695505050505050565b6000602082019050613ccf60008301846139c9565b92915050565b6000613cdf613cf0565b9050613ceb8282613f80565b919050565b6000604051905090565b600067ffffffffffffffff821115613d1557613d1461403e565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613d8682613ece565b9150613d9183613ece565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613dc657613dc5613fb1565b5b828201905092915050565b6000613ddc82613ece565b9150613de783613ece565b925082613df757613df6613fe0565b5b828204905092915050565b6000613e0d82613ece565b9150613e1883613ece565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e5157613e50613fb1565b5b828202905092915050565b6000613e6782613ece565b9150613e7283613ece565b925082821015613e8557613e84613fb1565b5b828203905092915050565b6000613e9b82613eae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613ef082613ef7565b9050919050565b6000613f0282613eae565b9050919050565b6000613f1482613ece565b9050919050565b60005b83811015613f39578082015181840152602081019050613f1e565b83811115613f48576000848401525b50505050565b60006002820490506001821680613f6657607f821691505b60208210811415613f7a57613f7961400f565b5b50919050565b613f898261406d565b810181811067ffffffffffffffff82111715613fa857613fa761403e565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61432b81613e90565b811461433657600080fd5b50565b61434281613ea2565b811461434d57600080fd5b50565b61435981613ece565b811461436457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207ca4a36a9aacd8961ab0180f2586570e857592a09303d92eaeaae500aaf20c6464736f6c63430008040033

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

0000000000000000000000000000000000000000000000000000000000e4e1c000000000000000000000000030c8e42762a191957acb864ff80a21f62272e615

-----Decoded View---------------
Arg [0] : supply (uint256): 15000000
Arg [1] : router (address): 0x30c8E42762A191957aCB864FF80A21F62272e615

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000e4e1c0
Arg [1] : 00000000000000000000000030c8e42762a191957acb864ff80a21f62272e615


Deployed Bytecode Sourcemap

7279:15070:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10233:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11528:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8875:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10510:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14746:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13452:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13003:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10419:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10896:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12721:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12856:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6197:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13722:747;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10618:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12042:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5578:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5792:145;;;;;;;;;;;;;:::i;:::-;;10324:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11399:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11122:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13319:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14571:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5454:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12314:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13140:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8923:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10745:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12433:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12600:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5945:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12179:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10233:83;10270:13;10303:5;10296:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10233:83;:::o;11528:161::-;11603:4;11620:39;11629:12;:10;:12::i;:::-;11643:7;11652:6;11620:8;:39::i;:::-;11677:4;11670:11;;11528:161;;;;:::o;8875:41::-;;;;;;;;;;;;;:::o;10510:100::-;10563:7;10590:12;;10583:19;;10510:100;:::o;14746:313::-;14844:4;14861:36;14871:6;14879:9;14890:6;14861:9;:36::i;:::-;;14908:121;14917:6;14925:12;:10;:12::i;:::-;14939:89;14977:6;14939:89;;;;;;;;;;;;;;;;;:11;:19;14951:6;14939:19;;;;;;;;;;;;;;;:33;14959:12;:10;:12::i;:::-;14939:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14908:8;:121::i;:::-;15047:4;15040:11;;14746:313;;;;;:::o;13452:128::-;13505:7;13532:40;13549:22;13559:11;;;;;;;;;;;13549:9;:22::i;:::-;13532:12;;:16;;:40;;;;:::i;:::-;13525:47;;13452:128;:::o;13003:129::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13113:10:::1;13085:17;;:39;;;;;;;;;;;;;;;;;;13003:129:::0;:::o;10419:83::-;10460:5;10485:9;;;;;;;;;;;10478:16;;10419:83;:::o;10896:218::-;10984:4;11001:83;11010:12;:10;:12::i;:::-;11024:7;11033:50;11072:10;11033:11;:25;11045:12;:10;:12::i;:::-;11033:25;;;;;;;;;;;;;;;:34;11059:7;11033:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11001:8;:83::i;:::-;11102:4;11095:11;;10896:218;;;;:::o;12721:125::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12830:8:::1;12803:24;:35;;;;12721:125:::0;:::o;12856:139::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12976:10:::1;12943:22;;:44;;;;;;;;;;;;;;;;;;12856:139:::0;:::o;6197:90::-;6237:7;6264:15;6257:22;;6197:90;:::o;13722:747::-;13802:22;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13839:35:::1;13896:16;13839:74;;13961:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13943:53;;;14005:4;14012:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13943:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13926:110;;14078:1;14052:28;;:14;:28;;;14049:225;;;14166:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14148:74;;;14231:4;14238:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14148:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14131:131;;14049:225;14300:14;14286:11;;:28;;;;;;;;;;;;;;;;;;14366:16;14348:15;;:34;;;;;;;;;;;;;;;;;;14457:4;14420:12;:34;14441:11;;;;;;;;;;;14420:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;5775:1;13722:747:::0;;;:::o;10618:119::-;10684:7;10711:9;:18;10721:7;10711:18;;;;;;;;;;;;;;;;10704:25;;10618:119;;;:::o;12042:129::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12155:8:::1;12131:12;:21;12144:7;12131:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12042:129:::0;;:::o;5578:79::-;5616:7;5643:6;;;;;;;;;;;5636:13;;5578:79;:::o;5792:145::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5896:1:::1;5859:40;;5880:6;::::0;::::1;;;;;;;;5859:40;;;;;;;;;;;;5927:1;5910:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5792:145::o:0;10324:87::-;10363:13;10396:7;10389:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10324:87;:::o;11399:121::-;11461:7;11488:24;;11481:31;;11399:121;:::o;11122:269::-;11215:4;11232:129;11241:12;:10;:12::i;:::-;11255:7;11264:96;11303:15;11264:96;;;;;;;;;;;;;;;;;:11;:25;11276:12;:10;:12::i;:::-;11264:25;;;;;;;;;;;;;;;:34;11290:7;11264:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11232:8;:129::i;:::-;11379:4;11372:11;;11122:269;;;;:::o;13319:125::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13428:8:::1;13400:25;;:36;;;;;;;;;;;;;;;;;;13319:125:::0;:::o;14571:167::-;14649:4;14666:42;14676:12;:10;:12::i;:::-;14690:9;14701:6;14666:9;:42::i;:::-;;14726:4;14719:11;;14571:167;;;;:::o;5454:21::-;;;;;;;;;;;;:::o;12314:111::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12407:10:::1;12387:17;:30;;;;12314:111:::0;:::o;13140:171::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13241:8:::1;13217:21;;:32;;;;;;;;;;;;;;;;;;13265:38;13294:8;13265:38;;;;;;:::i;:::-;;;;;;;;13140:171:::0;:::o;8923:26::-;;;;;;;;;;;;;:::o;10745:143::-;10826:7;10853:11;:18;10865:5;10853:18;;;;;;;;;;;;;;;:27;10872:7;10853:27;;;;;;;;;;;;;;;;10846:34;;10745:143;;;;:::o;12433:157::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12524:1:::1;12512:8;:13;;12504:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12574:8;12559:12;:23;;;;12433:157:::0;:::o;12600:111::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12692:11:::1;12677:12;:26;;;;12600:111:::0;:::o;5945:244::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6054:1:::1;6034:22;;:8;:22;;;;6026:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6144:8;6115:38;;6136:6;::::0;::::1;;;;;;;;6115:38;;;;;;;;;;;;6173:8;6164:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5945:244:::0;:::o;12179:127::-;5715:12;:10;:12::i;:::-;5705:22;;:6;;;;;;;;;;:22;;;5697:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12292:6:::1;12266:15;:23;12282:6;12266:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12179:127:::0;;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;11697:337::-;11807:1;11790:19;;:5;:19;;;;11782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11888:1;11869:21;;:7;:21;;;;11861:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11972:6;11942:11;:18;11954:5;11942:18;;;;;;;;;;;;;;;:27;11961:7;11942:27;;;;;;;;;;;;;;;:36;;;;12010:7;11994:32;;12003:5;11994:32;;;12019:6;11994:32;;;;;;:::i;:::-;;;;;;;;11697:337;;;:::o;15067:2714::-;15154:4;15199:1;15181:20;;:6;:20;;;;15173:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15283:1;15262:23;;:9;:23;;;;15254:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15353:1;15344:6;:10;15336:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15416:16;;;;;;;;;;;15413:2361;;;15465:41;15480:6;15488:9;15499:6;15465:14;:41::i;:::-;15458:48;;;;15413:2361;15559:28;15590:24;15608:4;15590:9;:24::i;:::-;15559:55;;15629:28;15684:24;;15660:20;:48;;15629:79;;15729:23;:44;;;;;15757:16;;;;;;;;;;;15756:17;15729:44;:69;;;;;15778:12;:20;15791:6;15778:20;;;;;;;;;;;;;;;;;;;;;;;;;15777:21;15729:69;:94;;;;;15802:21;;;;;;;;;;;15729:94;15725:301;;;15860:25;;;;;;;;;;;15857:98;;;15931:24;;15908:47;;15857:98;15974:36;15989:20;15974:14;:36::i;:::-;15725:301;16060:53;16082:6;16060:53;;;;;;;;;;;;;;;;;:9;:17;16070:6;16060:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16040:9;:17;16050:6;16040:17;;;;;;;;;;;;;;;:73;;;;16128:17;16162:18;16211:7;:5;:7::i;:::-;16201:17;;:6;:17;;;;:41;;;;;16235:7;:5;:7::i;:::-;16222:20;;:9;:20;;;;16201:41;16197:946;;;16275:58;16329:3;16275:49;16286:37;16308:14;;16286:17;;:21;;:37;;;;:::i;:::-;16275:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16263:70;;16355:12;:20;16368:6;16355:20;;;;;;;;;;;;;;;;;;;;;;;;;16352:774;;;16412:58;16466:3;16412:49;16423:37;16445:14;;16423:17;;:21;;:37;;;;:::i;:::-;16412:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16400:70;;16513:1;16496:14;;:18;:52;;;;;16531:17;;16518:10;;:30;16496:52;16493:212;;;16590:35;16621:3;16590:26;16601:14;;16590:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;16577:48;;16652:29;16663:6;16670:10;16652;:29::i;:::-;16493:212;16352:774;;;16750:12;:23;16763:9;16750:23;;;;;;;;;;;;;;;;;;;;;;;;;16747:379;;;16810:60;16866:3;16810:51;16821:39;16844:15;;16821:18;;:22;;:39;;;;:::i;:::-;16810:6;:10;;:51;;;;:::i;:::-;:55;;:60;;;;:::i;:::-;16798:72;;16914:1;16896:15;;:19;:53;;;;;16932:17;;16919:10;;:30;16896:53;16893:214;;;16991:36;17023:3;16991:27;17002:15;;16991:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;16978:49;;17054:29;17065:6;17072:10;17054;:29::i;:::-;16893:214;16747:379;16352:774;16197:946;17173:1;17161:9;:13;17158:439;;;17208:1;17196:13;;17229:21;17267:1;17253:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17229:40;;17299:6;17289:4;17294:1;17289:7;;;;;;;;;;;;;;;;;;;;;:16;;;;;;;;;;;17335:9;17325:4;17330:1;17325:7;;;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;17364:24;17410:15;;;;;;;;;;;17391:49;;;17441:6;17448:4;17391:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17364:89;;17486:7;17494:1;17486:10;;;;;;;;;;;;;;;;;;;;;;17473:23;;;;;:::i;:::-;;;17542:39;17571:9;17542;:24;17560:4;17542:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17515:9;:24;17533:4;17515:24;;;;;;;;;;;;;;;:66;;;;17158:439;;;17649:32;17674:6;17649:9;:20;17659:9;17649:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17626:9;:20;17636:9;17626:20;;;;;;;;;;;;;;;:55;;;;17718:9;17701:35;;17710:6;17701:35;;;17729:6;17701:35;;;;;;:::i;:::-;;;;;;;;17758:4;17751:11;;;;;;15067:2714;;;;;;:::o;1524:192::-;1610:7;1643:1;1638;:6;;1646:12;1630:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1670:9;1686:1;1682;:5;;;;:::i;:::-;1670:17;;1707:1;1700:8;;;1524:192;;;;;:::o;1380:136::-;1438:7;1465:43;1469:1;1472;1465:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1458:50;;1380:136;;;;:::o;1191:181::-;1249:7;1269:9;1285:1;1281;:5;;;;:::i;:::-;1269:17;;1310:1;1305;:6;;1297:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1363:1;1356:8;;;1191:181;;;;:::o;17789:330::-;17882:4;17919:53;17941:6;17919:53;;;;;;;;;;;;;;;;;:9;:17;17929:6;17919:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17899:9;:17;17909:6;17899:17;;;;;;;;;;;;;;;:73;;;;18006:32;18031:6;18006:9;:20;18016:9;18006:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17983:9;:20;17993:9;17983:20;;;;;;;;;;;;;;;:55;;;;18071:9;18054:35;;18063:6;18054:35;;;18082:6;18054:35;;;;;;:::i;:::-;;;;;;;;18107:4;18100:11;;17789:330;;;;;:::o;18127:1032::-;9554:4;9535:16;;:23;;;;;;;;;;;;;;;;;;18201:19:::1;18223:65;18286:1;18223:58;18256:24;;18223:28;18235:15;;18223:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;18201:87;;18299:21;18323:24;18335:11;18323:7;:11;;:24;;;;:::i;:::-;18299:48;;18360:31;18377:13;18360:16;:31::i;:::-;18402:22;18427:21;18402:46;;18461:19;18483:52;18512:22;18532:1;18512:15;;:19;;:22;;;;:::i;:::-;18483:24;;:28;;:52;;;;:::i;:::-;18461:74;;18548:26;18577:59;18634:1;18577:52;18617:11;18577:35;18596:15;;18577:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18548:88;;18647:21;18671:47;18706:11;18671:30;18690:10;;18671:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;18647:71;;18729:26;18758:57;18801:13;18758:38;18777:18;18758:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;18729:86;;18852:1;18831:18;:22;18828:104;;;18868:64;18889:22;;;;;;;;;;;18913:18;18868:20;:64::i;:::-;18828:104;18964:1;18948:13;:17;18945:89;;;18980:54;19001:17;;;;;;;;;;;19020:13;18980:20;:54::i;:::-;18945:89;19071:1;19050:18;:22;:41;;;;;19090:1;19076:11;:15;19050:41;19047:104;;;19106:45;19119:11;19132:18;19106:12;:45::i;:::-;19047:104;9569:1;;;;;;;9600:5:::0;9581:16;;:24;;;;;;;;;;;;;;;;;;18127:1032;:::o;1724:250::-;1782:7;1811:1;1806;:6;1802:47;;;1836:1;1829:8;;;;1802:47;1861:9;1877:1;1873;:5;;;;:::i;:::-;1861:17;;1906:1;1901;1897;:5;;;;:::i;:::-;:10;1889:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1965:1;1958:8;;;1724:250;;;;;:::o;1982:132::-;2040:7;2067:39;2071:1;2074;2067:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2060:46;;1982:132;;;;:::o;22023:321::-;22137:17;;22123:10;;:31;22120:43;;22156:7;;22120:43;22200:35;22227:7;22200:9;:22;22210:11;;;;;;;;;;;22200:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;22175:9;:22;22185:11;;;;;;;;;;;22175:22;;;;;;;;;;;;;;;:60;;;;22259:23;22274:7;22259:10;;:14;;:23;;;;:::i;:::-;22246:10;:36;;;;22315:11;;;;;;;;;;;22298:38;;22307:6;22298:38;;;22328:7;22298:38;;;;;;:::i;:::-;;;;;;;;22023:321;;;:::o;19167:658::-;19293:21;19331:1;19317:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19293:40;;19362:4;19344;19349:1;19344:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;19388:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19378:4;19383:1;19378:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;19423:62;19440:4;19455:15;;;;;;;;;;;19473:11;19423:8;:62::i;:::-;19524:15;;;;;;;;;;;:66;;;19605:11;19631:1;19675:4;19702;19738:15;19524:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19782:35;19799:11;19812:4;19782:35;;;;;;;:::i;:::-;;;;;;;;19167:658;;:::o;13588:126::-;13680:9;:18;;:26;13699:6;13680:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13588:126;;:::o;19833:520::-;19981:62;19998:4;20013:15;;;;;;;;;;;20031:11;19981:8;:62::i;:::-;20086:15;;;;;;;;;;;:31;;;20125:9;20158:4;20178:11;20204:1;20247;20290:14;;;;;;;;;;;20319:15;20086:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19833:520;;:::o;2122:278::-;2208:7;2240:1;2236;:5;2243:12;2228:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2267:9;2283:1;2279;:5;;;;:::i;:::-;2267:17;;2391:1;2384:8;;;2122:278;;;;;:::o;24:677:1:-;131:5;156:81;172:64;229:6;172:64;:::i;:::-;156:81;:::i;:::-;147:90;;257:5;286:6;279:5;272:21;320:4;313:5;309:16;302:23;;346:6;396:3;388:4;380:6;376:17;371:3;367:27;364:36;361:2;;;425:1;422;415:12;361:2;461:1;446:249;471:6;468:1;465:13;446:249;;;539:3;568:48;612:3;600:10;568:48;:::i;:::-;563:3;556:61;646:4;641:3;637:14;630:21;;680:4;675:3;671:14;664:21;;506:189;493:1;490;486:9;481:14;;446:249;;;450:14;137:564;;;;;;;:::o;707:139::-;753:5;791:6;778:20;769:29;;807:33;834:5;807:33;:::i;:::-;759:87;;;;:::o;852:143::-;909:5;940:6;934:13;925:22;;956:33;983:5;956:33;:::i;:::-;915:80;;;;:::o;1018:318::-;1100:5;1149:3;1142:4;1134:6;1130:17;1126:27;1116:2;;1167:1;1164;1157:12;1116:2;1200:6;1194:13;1225:105;1326:3;1318:6;1311:4;1303:6;1299:17;1225:105;:::i;:::-;1216:114;;1106:230;;;;;:::o;1342:133::-;1385:5;1423:6;1410:20;1401:29;;1439:30;1463:5;1439:30;:::i;:::-;1391:84;;;;:::o;1481:139::-;1527:5;1565:6;1552:20;1543:29;;1581:33;1608:5;1581:33;:::i;:::-;1533:87;;;;:::o;1626:143::-;1683:5;1714:6;1708:13;1699:22;;1730:33;1757:5;1730:33;:::i;:::-;1689:80;;;;:::o;1775:262::-;1834:6;1883:2;1871:9;1862:7;1858:23;1854:32;1851:2;;;1899:1;1896;1889:12;1851:2;1942:1;1967:53;2012:7;2003:6;1992:9;1988:22;1967:53;:::i;:::-;1957:63;;1913:117;1841:196;;;;:::o;2043:284::-;2113:6;2162:2;2150:9;2141:7;2137:23;2133:32;2130:2;;;2178:1;2175;2168:12;2130:2;2221:1;2246:64;2302:7;2293:6;2282:9;2278:22;2246:64;:::i;:::-;2236:74;;2192:128;2120:207;;;;:::o;2333:407::-;2401:6;2409;2458:2;2446:9;2437:7;2433:23;2429:32;2426:2;;;2474:1;2471;2464:12;2426:2;2517:1;2542:53;2587:7;2578:6;2567:9;2563:22;2542:53;:::i;:::-;2532:63;;2488:117;2644:2;2670:53;2715:7;2706:6;2695:9;2691:22;2670:53;:::i;:::-;2660:63;;2615:118;2416:324;;;;;:::o;2746:552::-;2823:6;2831;2839;2888:2;2876:9;2867:7;2863:23;2859:32;2856:2;;;2904:1;2901;2894:12;2856:2;2947:1;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2918:117;3074:2;3100:53;3145:7;3136:6;3125:9;3121:22;3100:53;:::i;:::-;3090:63;;3045:118;3202:2;3228:53;3273:7;3264:6;3253:9;3249:22;3228:53;:::i;:::-;3218:63;;3173:118;2846:452;;;;;:::o;3304:401::-;3369:6;3377;3426:2;3414:9;3405:7;3401:23;3397:32;3394:2;;;3442:1;3439;3432:12;3394:2;3485:1;3510:53;3555:7;3546:6;3535:9;3531:22;3510:53;:::i;:::-;3500:63;;3456:117;3612:2;3638:50;3680:7;3671:6;3660:9;3656:22;3638:50;:::i;:::-;3628:60;;3583:115;3384:321;;;;;:::o;3711:407::-;3779:6;3787;3836:2;3824:9;3815:7;3811:23;3807:32;3804:2;;;3852:1;3849;3842:12;3804:2;3895:1;3920:53;3965:7;3956:6;3945:9;3941:22;3920:53;:::i;:::-;3910:63;;3866:117;4022:2;4048:53;4093:7;4084:6;4073:9;4069:22;4048:53;:::i;:::-;4038:63;;3993:118;3794:324;;;;;:::o;4124:420::-;4219:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:2;;;4284:1;4281;4274:12;4236:2;4348:1;4337:9;4333:17;4327:24;4378:18;4370:6;4367:30;4364:2;;;4410:1;4407;4400:12;4364:2;4438:89;4519:7;4510:6;4499:9;4495:22;4438:89;:::i;:::-;4428:99;;4298:239;4226:318;;;;:::o;4550:256::-;4606:6;4655:2;4643:9;4634:7;4630:23;4626:32;4623:2;;;4671:1;4668;4661:12;4623:2;4714:1;4739:50;4781:7;4772:6;4761:9;4757:22;4739:50;:::i;:::-;4729:60;;4685:114;4613:193;;;;:::o;4812:262::-;4871:6;4920:2;4908:9;4899:7;4895:23;4891:32;4888:2;;;4936:1;4933;4926:12;4888:2;4979:1;5004:53;5049:7;5040:6;5029:9;5025:22;5004:53;:::i;:::-;4994:63;;4950:117;4878:196;;;;:::o;5080:596::-;5168:6;5176;5184;5233:2;5221:9;5212:7;5208:23;5204:32;5201:2;;;5249:1;5246;5239:12;5201:2;5292:1;5317:64;5373:7;5364:6;5353:9;5349:22;5317:64;:::i;:::-;5307:74;;5263:128;5430:2;5456:64;5512:7;5503:6;5492:9;5488:22;5456:64;:::i;:::-;5446:74;;5401:129;5569:2;5595:64;5651:7;5642:6;5631:9;5627:22;5595:64;:::i;:::-;5585:74;;5540:129;5191:485;;;;;:::o;5682:179::-;5751:10;5772:46;5814:3;5806:6;5772:46;:::i;:::-;5850:4;5845:3;5841:14;5827:28;;5762:99;;;;:::o;5867:108::-;5944:24;5962:5;5944:24;:::i;:::-;5939:3;5932:37;5922:53;;:::o;5981:118::-;6068:24;6086:5;6068:24;:::i;:::-;6063:3;6056:37;6046:53;;:::o;6135:732::-;6254:3;6283:54;6331:5;6283:54;:::i;:::-;6353:86;6432:6;6427:3;6353:86;:::i;:::-;6346:93;;6463:56;6513:5;6463:56;:::i;:::-;6542:7;6573:1;6558:284;6583:6;6580:1;6577:13;6558:284;;;6659:6;6653:13;6686:63;6745:3;6730:13;6686:63;:::i;:::-;6679:70;;6772:60;6825:6;6772:60;:::i;:::-;6762:70;;6618:224;6605:1;6602;6598:9;6593:14;;6558:284;;;6562:14;6858:3;6851:10;;6259:608;;;;;;;:::o;6873:109::-;6954:21;6969:5;6954:21;:::i;:::-;6949:3;6942:34;6932:50;;:::o;6988:183::-;7101:63;7158:5;7101:63;:::i;:::-;7096:3;7089:76;7079:92;;:::o;7177:147::-;7272:45;7311:5;7272:45;:::i;:::-;7267:3;7260:58;7250:74;;:::o;7330:364::-;7418:3;7446:39;7479:5;7446:39;:::i;:::-;7501:71;7565:6;7560:3;7501:71;:::i;:::-;7494:78;;7581:52;7626:6;7621:3;7614:4;7607:5;7603:16;7581:52;:::i;:::-;7658:29;7680:6;7658:29;:::i;:::-;7653:3;7649:39;7642:46;;7422:272;;;;;:::o;7700:366::-;7842:3;7863:67;7927:2;7922:3;7863:67;:::i;:::-;7856:74;;7939:93;8028:3;7939:93;:::i;:::-;8057:2;8052:3;8048:12;8041:19;;7846:220;;;:::o;8072:366::-;8214:3;8235:67;8299:2;8294:3;8235:67;:::i;:::-;8228:74;;8311:93;8400:3;8311:93;:::i;:::-;8429:2;8424:3;8420:12;8413:19;;8218:220;;;:::o;8444:366::-;8586:3;8607:67;8671:2;8666:3;8607:67;:::i;:::-;8600:74;;8683:93;8772:3;8683:93;:::i;:::-;8801:2;8796:3;8792:12;8785:19;;8590:220;;;:::o;8816:366::-;8958:3;8979:67;9043:2;9038:3;8979:67;:::i;:::-;8972:74;;9055:93;9144:3;9055:93;:::i;:::-;9173:2;9168:3;9164:12;9157:19;;8962:220;;;:::o;9188:366::-;9330:3;9351:67;9415:2;9410:3;9351:67;:::i;:::-;9344:74;;9427:93;9516:3;9427:93;:::i;:::-;9545:2;9540:3;9536:12;9529:19;;9334:220;;;:::o;9560:366::-;9702:3;9723:67;9787:2;9782:3;9723:67;:::i;:::-;9716:74;;9799:93;9888:3;9799:93;:::i;:::-;9917:2;9912:3;9908:12;9901:19;;9706:220;;;:::o;9932:366::-;10074:3;10095:67;10159:2;10154:3;10095:67;:::i;:::-;10088:74;;10171:93;10260:3;10171:93;:::i;:::-;10289:2;10284:3;10280:12;10273:19;;10078:220;;;:::o;10304:366::-;10446:3;10467:67;10531:2;10526:3;10467:67;:::i;:::-;10460:74;;10543:93;10632:3;10543:93;:::i;:::-;10661:2;10656:3;10652:12;10645:19;;10450:220;;;:::o;10676:366::-;10818:3;10839:67;10903:2;10898:3;10839:67;:::i;:::-;10832:74;;10915:93;11004:3;10915:93;:::i;:::-;11033:2;11028:3;11024:12;11017:19;;10822:220;;;:::o;11048:366::-;11190:3;11211:67;11275:2;11270:3;11211:67;:::i;:::-;11204:74;;11287:93;11376:3;11287:93;:::i;:::-;11405:2;11400:3;11396:12;11389:19;;11194:220;;;:::o;11420:118::-;11507:24;11525:5;11507:24;:::i;:::-;11502:3;11495:37;11485:53;;:::o;11544:112::-;11627:22;11643:5;11627:22;:::i;:::-;11622:3;11615:35;11605:51;;:::o;11662:222::-;11755:4;11793:2;11782:9;11778:18;11770:26;;11806:71;11874:1;11863:9;11859:17;11850:6;11806:71;:::i;:::-;11760:124;;;;:::o;11890:332::-;12011:4;12049:2;12038:9;12034:18;12026:26;;12062:71;12130:1;12119:9;12115:17;12106:6;12062:71;:::i;:::-;12143:72;12211:2;12200:9;12196:18;12187:6;12143:72;:::i;:::-;12016:206;;;;;:::o;12228:807::-;12477:4;12515:3;12504:9;12500:19;12492:27;;12529:71;12597:1;12586:9;12582:17;12573:6;12529:71;:::i;:::-;12610:72;12678:2;12667:9;12663:18;12654:6;12610:72;:::i;:::-;12692:80;12768:2;12757:9;12753:18;12744:6;12692:80;:::i;:::-;12782;12858:2;12847:9;12843:18;12834:6;12782:80;:::i;:::-;12872:73;12940:3;12929:9;12925:19;12916:6;12872:73;:::i;:::-;12955;13023:3;13012:9;13008:19;12999:6;12955:73;:::i;:::-;12482:553;;;;;;;;;:::o;13041:210::-;13128:4;13166:2;13155:9;13151:18;13143:26;;13179:65;13241:1;13230:9;13226:17;13217:6;13179:65;:::i;:::-;13133:118;;;;:::o;13257:274::-;13376:4;13414:2;13403:9;13399:18;13391:26;;13427:97;13521:1;13510:9;13506:17;13497:6;13427:97;:::i;:::-;13381:150;;;;:::o;13537:313::-;13650:4;13688:2;13677:9;13673:18;13665:26;;13737:9;13731:4;13727:20;13723:1;13712:9;13708:17;13701:47;13765:78;13838:4;13829:6;13765:78;:::i;:::-;13757:86;;13655:195;;;;:::o;13856:419::-;14022:4;14060:2;14049:9;14045:18;14037:26;;14109:9;14103:4;14099:20;14095:1;14084:9;14080:17;14073:47;14137:131;14263:4;14137:131;:::i;:::-;14129:139;;14027:248;;;:::o;14281:419::-;14447:4;14485:2;14474:9;14470:18;14462:26;;14534:9;14528:4;14524:20;14520:1;14509:9;14505:17;14498:47;14562:131;14688:4;14562:131;:::i;:::-;14554:139;;14452:248;;;:::o;14706:419::-;14872:4;14910:2;14899:9;14895:18;14887:26;;14959:9;14953:4;14949:20;14945:1;14934:9;14930:17;14923:47;14987:131;15113:4;14987:131;:::i;:::-;14979:139;;14877:248;;;:::o;15131:419::-;15297:4;15335:2;15324:9;15320:18;15312:26;;15384:9;15378:4;15374:20;15370:1;15359:9;15355:17;15348:47;15412:131;15538:4;15412:131;:::i;:::-;15404:139;;15302:248;;;:::o;15556:419::-;15722:4;15760:2;15749:9;15745:18;15737:26;;15809:9;15803:4;15799:20;15795:1;15784:9;15780:17;15773:47;15837:131;15963:4;15837:131;:::i;:::-;15829:139;;15727:248;;;:::o;15981:419::-;16147:4;16185:2;16174:9;16170:18;16162:26;;16234:9;16228:4;16224:20;16220:1;16209:9;16205:17;16198:47;16262:131;16388:4;16262:131;:::i;:::-;16254:139;;16152:248;;;:::o;16406:419::-;16572:4;16610:2;16599:9;16595:18;16587:26;;16659:9;16653:4;16649:20;16645:1;16634:9;16630:17;16623:47;16687:131;16813:4;16687:131;:::i;:::-;16679:139;;16577:248;;;:::o;16831:419::-;16997:4;17035:2;17024:9;17020:18;17012:26;;17084:9;17078:4;17074:20;17070:1;17059:9;17055:17;17048:47;17112:131;17238:4;17112:131;:::i;:::-;17104:139;;17002:248;;;:::o;17256:419::-;17422:4;17460:2;17449:9;17445:18;17437:26;;17509:9;17503:4;17499:20;17495:1;17484:9;17480:17;17473:47;17537:131;17663:4;17537:131;:::i;:::-;17529:139;;17427:248;;;:::o;17681:419::-;17847:4;17885:2;17874:9;17870:18;17862:26;;17934:9;17928:4;17924:20;17920:1;17909:9;17905:17;17898:47;17962:131;18088:4;17962:131;:::i;:::-;17954:139;;17852:248;;;:::o;18106:222::-;18199:4;18237:2;18226:9;18222:18;18214:26;;18250:71;18318:1;18307:9;18303:17;18294:6;18250:71;:::i;:::-;18204:124;;;;:::o;18334:483::-;18505:4;18543:2;18532:9;18528:18;18520:26;;18556:71;18624:1;18613:9;18609:17;18600:6;18556:71;:::i;:::-;18674:9;18668:4;18664:20;18659:2;18648:9;18644:18;18637:48;18702:108;18805:4;18796:6;18702:108;:::i;:::-;18694:116;;18510:307;;;;;:::o;18823:831::-;19086:4;19124:3;19113:9;19109:19;19101:27;;19138:71;19206:1;19195:9;19191:17;19182:6;19138:71;:::i;:::-;19219:80;19295:2;19284:9;19280:18;19271:6;19219:80;:::i;:::-;19346:9;19340:4;19336:20;19331:2;19320:9;19316:18;19309:48;19374:108;19477:4;19468:6;19374:108;:::i;:::-;19366:116;;19492:72;19560:2;19549:9;19545:18;19536:6;19492:72;:::i;:::-;19574:73;19642:3;19631:9;19627:19;19618:6;19574:73;:::i;:::-;19091:563;;;;;;;;:::o;19660:214::-;19749:4;19787:2;19776:9;19772:18;19764:26;;19800:67;19864:1;19853:9;19849:17;19840:6;19800:67;:::i;:::-;19754:120;;;;:::o;19880:129::-;19914:6;19941:20;;:::i;:::-;19931:30;;19970:33;19998:4;19990:6;19970:33;:::i;:::-;19921:88;;;:::o;20015:75::-;20048:6;20081:2;20075:9;20065:19;;20055:35;:::o;20096:311::-;20173:4;20263:18;20255:6;20252:30;20249:2;;;20285:18;;:::i;:::-;20249:2;20335:4;20327:6;20323:17;20315:25;;20395:4;20389;20385:15;20377:23;;20178:229;;;:::o;20413:132::-;20480:4;20503:3;20495:11;;20533:4;20528:3;20524:14;20516:22;;20485:60;;;:::o;20551:114::-;20618:6;20652:5;20646:12;20636:22;;20625:40;;;:::o;20671:99::-;20723:6;20757:5;20751:12;20741:22;;20730:40;;;:::o;20776:113::-;20846:4;20878;20873:3;20869:14;20861:22;;20851:38;;;:::o;20895:184::-;20994:11;21028:6;21023:3;21016:19;21068:4;21063:3;21059:14;21044:29;;21006:73;;;;:::o;21085:169::-;21169:11;21203:6;21198:3;21191:19;21243:4;21238:3;21234:14;21219:29;;21181:73;;;;:::o;21260:305::-;21300:3;21319:20;21337:1;21319:20;:::i;:::-;21314:25;;21353:20;21371:1;21353:20;:::i;:::-;21348:25;;21507:1;21439:66;21435:74;21432:1;21429:81;21426:2;;;21513:18;;:::i;:::-;21426:2;21557:1;21554;21550:9;21543:16;;21304:261;;;;:::o;21571:185::-;21611:1;21628:20;21646:1;21628:20;:::i;:::-;21623:25;;21662:20;21680:1;21662:20;:::i;:::-;21657:25;;21701:1;21691:2;;21706:18;;:::i;:::-;21691:2;21748:1;21745;21741:9;21736:14;;21613:143;;;;:::o;21762:348::-;21802:7;21825:20;21843:1;21825:20;:::i;:::-;21820:25;;21859:20;21877:1;21859:20;:::i;:::-;21854:25;;22047:1;21979:66;21975:74;21972:1;21969:81;21964:1;21957:9;21950:17;21946:105;21943:2;;;22054:18;;:::i;:::-;21943:2;22102:1;22099;22095:9;22084:20;;21810:300;;;;:::o;22116:191::-;22156:4;22176:20;22194:1;22176:20;:::i;:::-;22171:25;;22210:20;22228:1;22210:20;:::i;:::-;22205:25;;22249:1;22246;22243:8;22240:2;;;22254:18;;:::i;:::-;22240:2;22299:1;22296;22292:9;22284:17;;22161:146;;;;:::o;22313:96::-;22350:7;22379:24;22397:5;22379:24;:::i;:::-;22368:35;;22358:51;;;:::o;22415:90::-;22449:7;22492:5;22485:13;22478:21;22467:32;;22457:48;;;:::o;22511:126::-;22548:7;22588:42;22581:5;22577:54;22566:65;;22556:81;;;:::o;22643:77::-;22680:7;22709:5;22698:16;;22688:32;;;:::o;22726:86::-;22761:7;22801:4;22794:5;22790:16;22779:27;;22769:43;;;:::o;22818:178::-;22894:9;22927:63;22984:5;22927:63;:::i;:::-;22914:76;;22904:92;;;:::o;23002:139::-;23078:9;23111:24;23129:5;23111:24;:::i;:::-;23098:37;;23088:53;;;:::o;23147:121::-;23205:9;23238:24;23256:5;23238:24;:::i;:::-;23225:37;;23215:53;;;:::o;23274:307::-;23342:1;23352:113;23366:6;23363:1;23360:13;23352:113;;;23451:1;23446:3;23442:11;23436:18;23432:1;23427:3;23423:11;23416:39;23388:2;23385:1;23381:10;23376:15;;23352:113;;;23483:6;23480:1;23477:13;23474:2;;;23563:1;23554:6;23549:3;23545:16;23538:27;23474:2;23323:258;;;;:::o;23587:320::-;23631:6;23668:1;23662:4;23658:12;23648:22;;23715:1;23709:4;23705:12;23736:18;23726:2;;23792:4;23784:6;23780:17;23770:27;;23726:2;23854;23846:6;23843:14;23823:18;23820:38;23817:2;;;23873:18;;:::i;:::-;23817:2;23638:269;;;;:::o;23913:281::-;23996:27;24018:4;23996:27;:::i;:::-;23988:6;23984:40;24126:6;24114:10;24111:22;24090:18;24078:10;24075:34;24072:62;24069:2;;;24137:18;;:::i;:::-;24069:2;24177:10;24173:2;24166:22;23956:238;;;:::o;24200:180::-;24248:77;24245:1;24238:88;24345:4;24342:1;24335:15;24369:4;24366:1;24359:15;24386:180;24434:77;24431:1;24424:88;24531:4;24528:1;24521:15;24555:4;24552:1;24545:15;24572:180;24620:77;24617:1;24610:88;24717:4;24714:1;24707:15;24741:4;24738:1;24731:15;24758:180;24806:77;24803:1;24796:88;24903:4;24900:1;24893:15;24927:4;24924:1;24917:15;24944:102;24985:6;25036:2;25032:7;25027:2;25020:5;25016:14;25012:28;25002:38;;24992:54;;;:::o;25052:222::-;25192:34;25188:1;25180:6;25176:14;25169:58;25261:5;25256:2;25248:6;25244:15;25237:30;25158:116;:::o;25280:225::-;25420:34;25416:1;25408:6;25404:14;25397:58;25489:8;25484:2;25476:6;25472:15;25465:33;25386:119;:::o;25511:221::-;25651:34;25647:1;25639:6;25635:14;25628:58;25720:4;25715:2;25707:6;25703:15;25696:29;25617:115;:::o;25738:177::-;25878:29;25874:1;25866:6;25862:14;25855:53;25844:71;:::o;25921:220::-;26061:34;26057:1;26049:6;26045:14;26038:58;26130:3;26125:2;26117:6;26113:15;26106:28;26027:114;:::o;26147:182::-;26287:34;26283:1;26275:6;26271:14;26264:58;26253:76;:::o;26335:228::-;26475:34;26471:1;26463:6;26459:14;26452:58;26544:11;26539:2;26531:6;26527:15;26520:36;26441:122;:::o;26569:224::-;26709:34;26705:1;26697:6;26693:14;26686:58;26778:7;26773:2;26765:6;26761:15;26754:32;26675:118;:::o;26799:168::-;26939:20;26935:1;26927:6;26923:14;26916:44;26905:62;:::o;26973:223::-;27113:34;27109:1;27101:6;27097:14;27090:58;27182:6;27177:2;27169:6;27165:15;27158:31;27079:117;:::o;27202:122::-;27275:24;27293:5;27275:24;:::i;:::-;27268:5;27265:35;27255:2;;27314:1;27311;27304:12;27255:2;27245:79;:::o;27330:116::-;27400:21;27415:5;27400:21;:::i;:::-;27393:5;27390:32;27380:2;;27436:1;27433;27426:12;27380:2;27370:76;:::o;27452:122::-;27525:24;27543:5;27525:24;:::i;:::-;27518:5;27515:35;27505:2;;27564:1;27561;27554:12;27505:2;27495:79;:::o

Swarm Source

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