BNB Price: $694.99 (-2.11%)
Gas: 1 GWei
 

Overview

Max Total Supply

100,000,000APC

Holders

298,800 (0.00%)

Market

Price

$0.0032 @ 0.000005 BNB (-0.03%)

Onchain Market Cap

$323,555.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
USD Coin: USDC Token
Balance
14.3386 APC

Value
$0.05 ( ~7.19438168528834E-05 BNB) [0.0000%]
0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

ArenaPlay is committed to building on-chain infrastructure covering; gaming, quizzes, E-Sports, NFT, and the wider Meta-Universe.

Market

Volume (24H):$108,953.00
Market Capitalization:$0.00
Circulating Supply:0.00 APC
Market Data Source: Coinmarketcap


Update? Click here to update the token ICO / general information

Contract Source Code Verified (Exact Match)

Contract Name:
APCToken

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2022-07-03
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.12;
pragma experimental ABIEncoderV2;


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

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return 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;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

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

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address internal _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 transferOwnership(address newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

    function WETH() external pure returns (address);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
     function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );
}

library TransferHelper {
    function safeApprove(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');
    }

    function safeTransfer(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
    }

    function safeTransferFrom(address token, address from, address to, uint value) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');
    }

    function safeTransferETH(address to, uint value) internal {
        (bool success,) = to.call{value:value}(new bytes(0));
        require(success, 'TransferHelper: ETH_TRANSFER_FAILED');
    }
}

library EnumerableSet {
   
    struct Set {
        bytes32[] _values;
        mapping (bytes32 => uint256) _indexes;
    }

    function _add(Set storage set, bytes32 value) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }

    function _remove(Set storage set, bytes32 value) private returns (bool) {
        
        uint256 valueIndex = set._indexes[value];

        if (valueIndex != 0) { // Equivalent to contains(set, value)
            
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;

    
            bytes32 lastvalue = set._values[lastIndex];

            set._values[toDeleteIndex] = lastvalue;
            // Update the index for the moved value
            set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based

            set._values.pop();

            delete set._indexes[value];

            return true;
        } else {
            return false;
        }
    }

    
    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }

    
    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }

   
    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        require(set._values.length > index, "EnumerableSet: index out of bounds");
        return set._values[index];
    }

    struct Bytes32Set {
        Set _inner;
    }

    
    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _add(set._inner, value);
    }


    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _remove(set._inner, value);
    }

    
    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {
        return _contains(set._inner, value);
    }

   
    function length(Bytes32Set storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

   
    function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {
        return _at(set._inner, index);
    }

    struct AddressSet {
        Set _inner;
    }

    
    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(uint160(value))));
    }


    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(uint160(value))));
    }

   
    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(uint160(value))));
    }

   
    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

   
    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint160(uint256(_at(set._inner, index))));
    }

    struct UintSet {
        Set _inner;
    }

    
    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(value));
    }

    
    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(value));
    }

    
    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(value));
    }

    
    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

   
    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return uint256(_at(set._inner, index));
    }
}

interface IUniswapV2Pair {
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

contract TokenReceiver{
    constructor (address token) public{
        IERC20(token).approve(msg.sender,10 ** 12 * 10**18);
    }
}


contract APCToken is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

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

    mapping (address => bool) private _isExcludedFromFee;

    uint8 private _decimals = 18;
    uint256 private _tTotal = 100000000 * 10 ** 18;

    string private _name = "ArenaPlay";
    string private _symbol = "APC";
    
    uint256 public _burnFee = 5;
    uint256 public _fundFee = 10;
    uint256 public _lQFee = 5;

    uint256 public totalFee = 20;
    IUniswapV2Router02 public uniswapV2Router;

    mapping(address => bool) public ammPairs;

    bool inSwapAndLiquify;
    
    address public uniswapV2Pair;
    address public tokenReceiver;
    address public holder;

    uint public addPriceTokenAmount = 1e6;
    uint public maxTxAmount = 10e18;
    uint public lQAmount;
    address public fundAddress;
    address public usdt;
    uint public burnLimit = 90000000e18;
    bool public swapSwitch = false;
    uint public swapStartTime;
    uint public swapTimeLimit = 20;

    constructor (
        address _route,
        address _usdt,
        address _holder,
        address _fundAddress) public {
        
        holder = _holder;
        usdt = _usdt;
        fundAddress = _fundAddress;
        _tOwned[holder] = _tTotal;
        
        _isExcludedFromFee[holder] = true;
   
        _isExcludedFromFee[address(this)] = true;

        uniswapV2Router = IUniswapV2Router02(_route);
         
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), usdt);
        
        ammPairs[uniswapV2Pair] = true;
        _owner = msg.sender;

        tokenReceiver = address(new TokenReceiver(address(usdt)));
        emit Transfer(address(0), _holder, _tTotal);
    }
    function setAmmPair(address pair,bool hasPair)external onlyOwner{
        ammPairs[pair] = hasPair;
    }

    function start()external onlyOwner{
        swapSwitch = true;
        swapStartTime = block.timestamp;
    }

   function closure()external onlyOwner{
        swapSwitch = false;
    }
    function setAmount(uint mta,uint alv)external onlyOwner{
        maxTxAmount = mta;
        addPriceTokenAmount = alv;
    }
    
    function setFundAddress(address addr)external onlyOwner{
        fundAddress = addr;
    }

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

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

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

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

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

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

    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 excludeFromFee(address[] memory accounts) public onlyOwner {
        for( uint i = 0; i < accounts.length; i++ ){
            _isExcludedFromFee[accounts[i]] = true;
        }
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

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

    function _take(uint256 tValue,address from,address to) private {
        _tOwned[to] = _tOwned[to].add(tValue);
        emit Transfer(from, to, tValue);
    }
    
    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);
    }
    struct Param{
        bool takeFee;
        uint tTransferAmount;
        uint tLQ;
        uint tBurn;
        uint tFund;
    }

     function _initParam(uint256 tAmount,Param memory param) private view  {
        param.tLQ = tAmount * _lQFee / 1000;
        param.tBurn = tAmount * _burnFee / 1000;
        param.tFund = tAmount * _fundFee / 1000;
        uint tFee = tAmount * totalFee / 1000;
        param.tTransferAmount = tAmount.sub(tFee);
    }

    function _takeFee(Param memory param,address from)private {
        if( param.tLQ > 0 ){
            _take(param.tLQ, from, address(this));
            lQAmount += param.tLQ;
        }
        if( param.tBurn > 0 ){
            _take(param.tBurn, from, address(0));
        }
        if( param.tFund > 0 ){
             _take(param.tFund,from,fundAddress);
        }
    }

      function _isLiquidity(address from,address to)internal view returns(bool isAdd,bool isDel){
        address token0 = IUniswapV2Pair(address(uniswapV2Pair)).token0();
        (uint r0,,) = IUniswapV2Pair(address(uniswapV2Pair)).getReserves();
        uint bal0 = IERC20(token0).balanceOf(address(uniswapV2Pair));
        if( ammPairs[to] ){
            if( token0 != address(this) && bal0 > r0 ){
                isAdd = bal0 - r0 > addPriceTokenAmount;
            }
        }
        if( ammPairs[from] ){
            if( token0 != address(this) && bal0 < r0 ){
                isDel = r0 - bal0 > 0; 
            }
        }
    }

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

        bool isAddLiquidity;
        bool isDelLiquidity;
        ( isAddLiquidity, isDelLiquidity) = _isLiquidity(from,to);

        if( 
              from != address(this) 
            && lQAmount >= maxTxAmount
            && lQAmount <= balanceOf(address(this))
            && !isAddLiquidity
            && !inSwapAndLiquify 
            && !ammPairs[from] 
            && IERC20(uniswapV2Pair).totalSupply() > 1000 ){

                inSwapAndLiquify = true;
                uint v = lQAmount;
                lQAmount = 0;
                swapAndLiquify(v);
                inSwapAndLiquify = false;
            }
        
        Param memory param;
        param.tTransferAmount = amount;

        bool takeFee = false;

        if( ammPairs[from] && !_isExcludedFromFee[to] && !isDelLiquidity){
            takeFee = true;
            require(swapSwitch,"not start");
            require( block.timestamp > swapStartTime + swapTimeLimit,"not allow");
        }

        if( ammPairs[to] && !_isExcludedFromFee[from] && !isAddLiquidity){
            takeFee = true;
            require(swapSwitch,"not start");
            require( block.timestamp > swapStartTime + swapTimeLimit,"not allow");
        }

        if( takeFee && balanceOf(address(0)) >= burnLimit){
            takeFee = false;
        }

        param.takeFee = takeFee;
        if( takeFee ){
            _initParam(amount,param);
        }
        
        _tokenTransfer(from,to,amount,param);
    }

    function _tokenTransfer(address sender, address recipient, uint256 tAmount,Param memory param) private {
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(param.tTransferAmount);
         emit Transfer(sender, recipient, param.tTransferAmount);
        if(param.takeFee){
            _takeFee(param,sender);
        }
    }

     function swapAndLiquify(uint256 contractTokenBalance) private  {
        
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        swapTokensForEth(half); 

        uint256 newBalance = IERC20(usdt).balanceOf(tokenReceiver);

        addLiquidity(otherHalf, newBalance);
    }

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

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

        uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            tokenReceiver,
            block.timestamp
        );
    }


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

        IERC20(usdt).transferFrom(tokenReceiver,address(this),ethAmount);

        IERC20(usdt).approve(address(uniswapV2Router), ethAmount);

        uniswapV2Router.addLiquidity(
            address(this),
            usdt,
            tokenAmount,
            ethAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(this),
            block.timestamp
        );
    }


    function donateDust(address addr, uint256 amount) external onlyOwner {
        TransferHelper.safeTransfer(addr, _msgSender(), amount);
    }

    function donateEthDust(uint256 amount) external onlyOwner {
        TransferHelper.safeTransferETH(_msgSender(), amount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_route","type":"address"},{"internalType":"address","name":"_usdt","type":"address"},{"internalType":"address","name":"_holder","type":"address"},{"internalType":"address","name":"_fundAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lQFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addPriceTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"closure","outputs":[],"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":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"donateDust","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"donateEthDust","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"holder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lQAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","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":"address","name":"pair","type":"address"},{"internalType":"bool","name":"hasPair","type":"bool"}],"name":"setAmmPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mta","type":"uint256"},{"internalType":"uint256","name":"alv","type":"uint256"}],"name":"setAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapSwitch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTimeLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usdt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600460006101000a81548160ff021916908360ff1602179055506a52b7d2dcc80cd2e40000006005556040518060400160405280600981526020017f4172656e61506c61790000000000000000000000000000000000000000000000815250600690805190602001906200007c929190620006f3565b506040518060400160405280600381526020017f415043000000000000000000000000000000000000000000000000000000000081525060079080519060200190620000ca929190620006f3565b506005600855600a6009556005600a556014600b55620f4240601155678ac7230489e800006012556a4a723dc6b40b8a9a0000006016556000601760006101000a81548160ff02191690831515021790555060146019553480156200012e57600080fd5b5060405162004c1338038062004c138339818101604052810190620001549190620007ea565b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055460016000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003fb57600080fd5b505afa15801562000410573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004369190620007be565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040162000494929190620008a6565b602060405180830381600087803b158015620004af57600080fd5b505af1158015620004c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ea9190620007be565b600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d6000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405162000615906200077a565b62000621919062000889565b604051809103906000f0801580156200063e573d6000803e3d6000fd5b50600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620006e19190620008d3565b60405180910390a35050505062000984565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200073657805160ff191683800117855562000767565b8280016001018555821562000767579182015b828111156200076657825182559160200191906001019062000749565b5b50905062000776919062000788565b5090565b6102a1806200497283390190565b5b80821115620007a357600081600090555060010162000789565b5090565b600081519050620007b8816200096a565b92915050565b600060208284031215620007d157600080fd5b6000620007e184828501620007a7565b91505092915050565b600080600080608085870312156200080157600080fd5b60006200081187828801620007a7565b94505060206200082487828801620007a7565b93505060406200083787828801620007a7565b92505060606200084a87828801620007a7565b91505092959194509250565b62000861816200092e565b82525050565b6200087281620008f0565b82525050565b620008838162000924565b82525050565b6000602082019050620008a0600083018462000867565b92915050565b6000604082019050620008bd600083018562000856565b620008cc602083018462000867565b9392505050565b6000602082019050620008ea600083018462000878565b92915050565b6000620008fd8262000904565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200093b8262000942565b9050919050565b60006200094f8262000956565b9050919050565b6000620009638262000904565b9050919050565b6200097581620008f0565b81146200098157600080fd5b50565b613fde80620009946000396000f3fe60806040526004361061024a5760003560e01c80638da5cb5b11610139578063c084c3e1116100b6578063dd62ed3e1161007a578063dd62ed3e146108a7578063e534155d146108e4578063e82bef291461090f578063ea2f0b371461093a578063f2fde38b14610963578063fc528c1c1461098c57610251565b8063c084c3e1146107d2578063c0b0fda2146107fd578063c6a023e914610828578063cbac6d5814610851578063d91eb81b1461087c57610251565b8063a72905a2116100fd578063a72905a2146106eb578063a9059cbb14610728578063aaa83a0214610765578063bacf251b14610790578063be9a6555146107bb57610251565b80638da5cb5b1461060457806395d89b411461062f578063a3e295bc1461065a578063a457c2d714610685578063a6a2badc146106c257610251565b8063313ce567116101c757806370a082311161018b57806370a082311461051f57806371b9189c1461055c57806380f42e4e1461058557806385dc3004146105b05780638c0b5e22146105d957610251565b8063313ce56714610424578063395093511461044f57806349bd5a5e1461048c5780635342acb4146104b75780635a74c973146104f457610251565b806318160ddd1161020e57806318160ddd1461033b5780631df4ccfc1461036657806323b872dd146103915780632a9c72c8146103ce5780632f48ab7d146103f957610251565b806306fdde0314610256578063095ea7b3146102815780630999c0c2146102be5780630a656923146102e75780631694505e1461031057610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109a3565b6040516102789190613b07565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190613359565b610a45565b6040516102b59190613ad1565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190613359565b610a63565b005b3480156102f357600080fd5b5061030e6004803603810190610309919061331d565b610b0e565b005b34801561031c57600080fd5b50610325610bfe565b6040516103329190613aec565b60405180910390f35b34801561034757600080fd5b50610350610c24565b60405161035d9190613c69565b60405180910390f35b34801561037257600080fd5b5061037b610c2e565b6040516103889190613c69565b60405180910390f35b34801561039d57600080fd5b506103b860048036038101906103b391906132ce565b610c34565b6040516103c59190613ad1565b60405180910390f35b3480156103da57600080fd5b506103e3610d0d565b6040516103f09190613c69565b60405180910390f35b34801561040557600080fd5b5061040e610d13565b60405161041b91906139d8565b60405180910390f35b34801561043057600080fd5b50610439610d39565b6040516104469190613cde565b60405180910390f35b34801561045b57600080fd5b5061047660048036038101906104719190613359565b610d50565b6040516104839190613ad1565b60405180910390f35b34801561049857600080fd5b506104a1610e03565b6040516104ae91906139d8565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d99190613240565b610e29565b6040516104eb9190613ad1565b60405180910390f35b34801561050057600080fd5b50610509610e7f565b6040516105169190613c69565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190613240565b610e85565b6040516105539190613c69565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613395565b610ece565b005b34801561059157600080fd5b5061059a610feb565b6040516105a79190613c69565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190613240565b610ff1565b005b3480156105e557600080fd5b506105ee6110ca565b6040516105fb9190613c69565b60405180910390f35b34801561061057600080fd5b506106196110d0565b60405161062691906139d8565b60405180910390f35b34801561063b57600080fd5b506106446110f9565b6040516106519190613b07565b60405180910390f35b34801561066657600080fd5b5061066f61119b565b60405161067c91906139d8565b60405180910390f35b34801561069157600080fd5b506106ac60048036038101906106a79190613359565b6111c1565b6040516106b99190613ad1565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e4919061344e565b61128e565b005b3480156106f757600080fd5b50610712600480360381019061070d9190613240565b611337565b60405161071f9190613ad1565b60405180910390f35b34801561073457600080fd5b5061074f600480360381019061074a9190613359565b611357565b60405161075c9190613ad1565b60405180910390f35b34801561077157600080fd5b5061077a611375565b6040516107879190613ad1565b60405180910390f35b34801561079c57600080fd5b506107a5611388565b6040516107b29190613c69565b60405180910390f35b3480156107c757600080fd5b506107d061138e565b005b3480156107de57600080fd5b506107e7611447565b6040516107f49190613c69565b60405180910390f35b34801561080957600080fd5b5061081261144d565b60405161081f9190613c69565b60405180910390f35b34801561083457600080fd5b5061084f600480360381019061084a91906134a0565b611453565b005b34801561085d57600080fd5b506108666114fa565b6040516108739190613c69565b60405180910390f35b34801561088857600080fd5b50610891611500565b60405161089e9190613c69565b60405180910390f35b3480156108b357600080fd5b506108ce60048036038101906108c99190613292565b611506565b6040516108db9190613c69565b60405180910390f35b3480156108f057600080fd5b506108f961158d565b60405161090691906139d8565b60405180910390f35b34801561091b57600080fd5b506109246115b3565b60405161093191906139d8565b60405180910390f35b34801561094657600080fd5b50610961600480360381019061095c9190613240565b6115d9565b005b34801561096f57600080fd5b5061098a60048036038101906109859190613240565b6116c9565b005b34801561099857600080fd5b506109a161181b565b005b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a3b5780601f10610a1057610100808354040283529160200191610a3b565b820191906000526020600020905b815481529060010190602001808311610a1e57829003601f168201915b5050505050905090565b6000610a59610a526118cd565b84846118d5565b6001905092915050565b610a6b6118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90613bc9565b60405180910390fd5b610b0a82610b046118cd565b83611aa0565b5050565b610b166118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90613bc9565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b600b5481565b6000610c41848484611bd7565b610d0284610c4d6118cd565b610cfd85604051806060016040528060288152602001613f5c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cb36118cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121779092919063ffffffff16565b6118d5565b600190509392505050565b60165481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460009054906101000a900460ff16905090565b6000610df9610d5d6118cd565b84610df48560026000610d6e6118cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d290919063ffffffff16565b6118d5565b6001905092915050565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ed66118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a90613bc9565b60405180910390fd5b60005b8151811015610fe757600160036000848481518110610f8157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610f66565b5050565b60135481565b610ff96118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90613bc9565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111915780601f1061116657610100808354040283529160200191611191565b820191906000526020600020905b81548152906001019060200180831161117457829003601f168201915b5050505050905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112846111ce6118cd565b8461127f85604051806060016040528060258152602001613f8460259139600260006111f86118cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121779092919063ffffffff16565b6118d5565b6001905092915050565b6112966118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131a90613bc9565b60405180910390fd5b61133461132e6118cd565b82612227565b50565b600d6020528060005260406000206000915054906101000a900460ff1681565b600061136b6113646118cd565b8484611bd7565b6001905092915050565b601760009054906101000a900460ff1681565b60185481565b6113966118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90613bc9565b60405180910390fd5b6001601760006101000a81548160ff02191690831515021790555042601881905550565b60115481565b60085481565b61145b6118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df90613bc9565b60405180910390fd5b81601281905550806011819055505050565b60195481565b60095481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115e16118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590613bc9565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6116d16118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590613bc9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118236118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790613bc9565b60405180910390fd5b6000601760006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193c90613c29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac90613b69565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a939190613c69565b60405180910390a3505050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401611ad3929190613aa8565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611b2191906139c1565b6000604051808303816000865af19150503d8060008114611b5e576040519150601f19603f3d011682016040523d82523d6000602084013e611b63565b606091505b5091509150818015611b915750600081511480611b90575080806020019051810190611b8f91906133d6565b5b5b611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc790613b49565b60405180910390fd5b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90613c09565b60405180910390fd5b60008111611c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8190613be9565b60405180910390fd5b600080611c978585612325565b80925081935050503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611cdf575060125460135410155b8015611cf55750611cef30610e85565b60135411155b8015611cff575081155b8015611d185750600e60009054906101000a900460ff16155b8015611d6e5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e1a57506103e8600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611de057600080fd5b505afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190613477565b115b15611e6f576001600e60006101000a81548160ff021916908315150217905550600060135490506000601381905550611e5281612674565b6000600e60006101000a81548160ff021916908315150217905550505b611e776130e4565b838160200181815250506000600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f265750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f30575082155b15611fd15760019050601760009054906101000a900460ff16611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f90613b29565b60405180910390fd5b601954601854014211611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790613ba9565b60405180910390fd5b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120745750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561207e575083155b1561211f5760019050601760009054906101000a900460ff166120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd90613b29565b60405180910390fd5b60195460185401421161211e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211590613ba9565b60405180910390fd5b5b80801561213757506016546121346000610e85565b10155b1561214157600090505b80826000019015159081151581525050801561216257612161858361278d565b5b61216e8787878561280d565b50505050505050565b60008383111582906121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b69190613b07565b60405180910390fd5b5060008385039050809150509392505050565b60008082840190508381101561221d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221490613b89565b60405180910390fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff8111801561225957600080fd5b506040519080825280601f01601f19166020018201604052801561228c5781602001600182028036833780820191505090505b5060405161229a91906139c1565b60006040518083038185875af1925050503d80600081146122d7576040519150601f19603f3d011682016040523d82523d6000602084013e6122dc565b606091505b5050905080612320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231790613c49565b60405180910390fd5b505050565b6000806000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561239257600080fd5b505afa1580156123a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ca9190613269565b90506000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561243657600080fd5b505afa15801561244a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246e91906133ff565b50506dffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016124df91906139d8565b60206040518083038186803b1580156124f757600080fd5b505afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f9190613477565b9050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125ce573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125be57508181115b156125cd576011548282031194505b5b600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561266a573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561265b57508181105b156126695760008183031193505b5b5050509250929050565b600061268a6002836129bf90919063ffffffff16565b905060006126a18284612a0990919063ffffffff16565b90506126ac82612a53565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161272b91906139d8565b60206040518083038186803b15801561274357600080fd5b505afa158015612757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277b9190613477565b90506127878282612c3a565b50505050565b6103e8600a5483028161279c57fe5b048160400181815250506103e86008548302816127b557fe5b048160600181815250506103e86009548302816127ce57fe5b0481608001818152505060006103e8600b548402816127e957fe5b0490506127ff8184612a0990919063ffffffff16565b826020018181525050505050565b61285f82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128f88160200151600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836020015160405161299c9190613c69565b60405180910390a38060000151156129b9576129b88185612ef2565b5b50505050565b6000612a0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f84565b905092915050565b6000612a4b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612177565b905092915050565b6060600267ffffffffffffffff81118015612a6d57600080fd5b50604051908082528060200260200182016040528015612a9c5781602001602082028036833780820191505090505b5090503081600081518110612aad57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612b1757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b7e30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118d5565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612c04959493929190613c84565b600060405180830381600087803b158015612c1e57600080fd5b505af1158015612c32573d6000803e3d6000fd5b505050505050565b612c6730600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118d5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630846040518463ffffffff1660e01b8152600401612ce893929190613a71565b602060405180830381600087803b158015612d0257600080fd5b505af1158015612d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3a91906133d6565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612dba929190613aa8565b602060405180830381600087803b158015612dd457600080fd5b505af1158015612de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0c91906133d6565b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e3370030601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16858560008030426040518963ffffffff1660e01b8152600401612e999897969594939291906139f3565b606060405180830381600087803b158015612eb357600080fd5b505af1158015612ec7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eeb91906134dc565b5050505050565b600082604001511115612f2357612f0e82604001518230612fe5565b81604001516013600082825401925050819055505b600082606001511115612f4157612f408260600151826000612fe5565b5b600082608001511115612f8057612f7f826080015182601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612fe5565b5b5050565b60008083118290612fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc29190613b07565b60405180910390fd5b506000838581612fd757fe5b049050809150509392505050565b61303783600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d290919063ffffffff16565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130d79190613c69565b60405180910390a3505050565b6040518060a00160405280600015158152602001600081526020016000815260200160008152602001600081525090565b60008135905061312481613ee8565b92915050565b60008151905061313981613ee8565b92915050565b600082601f83011261315057600080fd5b813561316361315e82613d26565b613cf9565b9150818183526020840193506020810190508385602084028201111561318857600080fd5b60005b838110156131b8578161319e8882613115565b84526020840193506020830192505060018101905061318b565b5050505092915050565b6000813590506131d181613eff565b92915050565b6000815190506131e681613eff565b92915050565b6000815190506131fb81613f16565b92915050565b60008135905061321081613f2d565b92915050565b60008151905061322581613f2d565b92915050565b60008151905061323a81613f44565b92915050565b60006020828403121561325257600080fd5b600061326084828501613115565b91505092915050565b60006020828403121561327b57600080fd5b60006132898482850161312a565b91505092915050565b600080604083850312156132a557600080fd5b60006132b385828601613115565b92505060206132c485828601613115565b9150509250929050565b6000806000606084860312156132e357600080fd5b60006132f186828701613115565b935050602061330286828701613115565b925050604061331386828701613201565b9150509250925092565b6000806040838503121561333057600080fd5b600061333e85828601613115565b925050602061334f858286016131c2565b9150509250929050565b6000806040838503121561336c57600080fd5b600061337a85828601613115565b925050602061338b85828601613201565b9150509250929050565b6000602082840312156133a757600080fd5b600082013567ffffffffffffffff8111156133c157600080fd5b6133cd8482850161313f565b91505092915050565b6000602082840312156133e857600080fd5b60006133f6848285016131d7565b91505092915050565b60008060006060848603121561341457600080fd5b6000613422868287016131ec565b9350506020613433868287016131ec565b92505060406134448682870161322b565b9150509250925092565b60006020828403121561346057600080fd5b600061346e84828501613201565b91505092915050565b60006020828403121561348957600080fd5b600061349784828501613216565b91505092915050565b600080604083850312156134b357600080fd5b60006134c185828601613201565b92505060206134d285828601613201565b9150509250929050565b6000806000606084860312156134f157600080fd5b60006134ff86828701613216565b935050602061351086828701613216565b925050604061352186828701613216565b9150509250925092565b60006135378383613552565b60208301905092915050565b61354c81613e38565b82525050565b61355b81613db9565b82525050565b61356a81613db9565b82525050565b600061357b82613d5e565b6135858185613d8c565b935061359083613d4e565b8060005b838110156135c15781516135a8888261352b565b97506135b383613d7f565b925050600181019050613594565b5085935050505092915050565b6135d781613dcb565b82525050565b60006135e882613d69565b6135f28185613d9d565b9350613602818560208601613ea4565b80840191505092915050565b61361781613e4a565b82525050565b61362681613e6e565b82525050565b600061363782613d74565b6136418185613da8565b9350613651818560208601613ea4565b61365a81613ed7565b840191505092915050565b6000613672600983613da8565b91507f6e6f7420737461727400000000000000000000000000000000000000000000006000830152602082019050919050565b60006136b2601f83613da8565b91507f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006000830152602082019050919050565b60006136f2602283613da8565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613758601b83613da8565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000613798600983613da8565b91507f6e6f7420616c6c6f7700000000000000000000000000000000000000000000006000830152602082019050919050565b60006137d8602083613da8565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613818602983613da8565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b600061387e602583613da8565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138e4602483613da8565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061394a602383613da8565b91507f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960008301527f4c454400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6139ac81613e11565b82525050565b6139bb81613e2b565b82525050565b60006139cd82846135dd565b915081905092915050565b60006020820190506139ed6000830184613561565b92915050565b600061010082019050613a09600083018b613543565b613a16602083018a613561565b613a2360408301896139a3565b613a3060608301886139a3565b613a3d608083018761361d565b613a4a60a083018661361d565b613a5760c0830185613543565b613a6460e08301846139a3565b9998505050505050505050565b6000606082019050613a866000830186613561565b613a936020830185613543565b613aa060408301846139a3565b949350505050565b6000604082019050613abd6000830185613561565b613aca60208301846139a3565b9392505050565b6000602082019050613ae660008301846135ce565b92915050565b6000602082019050613b01600083018461360e565b92915050565b60006020820190508181036000830152613b21818461362c565b905092915050565b60006020820190508181036000830152613b4281613665565b9050919050565b60006020820190508181036000830152613b62816136a5565b9050919050565b60006020820190508181036000830152613b82816136e5565b9050919050565b60006020820190508181036000830152613ba28161374b565b9050919050565b60006020820190508181036000830152613bc28161378b565b9050919050565b60006020820190508181036000830152613be2816137cb565b9050919050565b60006020820190508181036000830152613c028161380b565b9050919050565b60006020820190508181036000830152613c2281613871565b9050919050565b60006020820190508181036000830152613c42816138d7565b9050919050565b60006020820190508181036000830152613c628161393d565b9050919050565b6000602082019050613c7e60008301846139a3565b92915050565b600060a082019050613c9960008301886139a3565b613ca6602083018761361d565b8181036040830152613cb88186613570565b9050613cc76060830185613561565b613cd460808301846139a3565b9695505050505050565b6000602082019050613cf360008301846139b2565b92915050565b6000604051905081810181811067ffffffffffffffff82111715613d1c57600080fd5b8060405250919050565b600067ffffffffffffffff821115613d3d57600080fd5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613dc482613df1565b9050919050565b60008115159050919050565b60006dffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000613e4382613e80565b9050919050565b6000613e5582613e5c565b9050919050565b6000613e6782613df1565b9050919050565b6000613e7982613e11565b9050919050565b6000613e8b82613e92565b9050919050565b6000613e9d82613df1565b9050919050565b60005b83811015613ec2578082015181840152602081019050613ea7565b83811115613ed1576000848401525b50505050565b6000601f19601f8301169050919050565b613ef181613db9565b8114613efc57600080fd5b50565b613f0881613dcb565b8114613f1357600080fd5b50565b613f1f81613dd7565b8114613f2a57600080fd5b50565b613f3681613e11565b8114613f4157600080fd5b50565b613f4d81613e1b565b8114613f5857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f4351cbaf8de320f274a34e50786eb548cb2098f09003577f59ff42d8bb9f8ab64736f6c634300060c0033608060405234801561001057600080fd5b506040516102a13803806102a1833981810160405281019061003291906100fd565b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3336c0c9f2c9cd04674edea400000006040518363ffffffff1660e01b815260040161007a92919061016d565b602060405180830381600087803b15801561009457600080fd5b505af11580156100a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100cc9190610126565b5050610254565b6000815190506100e281610226565b92915050565b6000815190506100f78161023d565b92915050565b60006020828403121561010f57600080fd5b600061011d848285016100d3565b91505092915050565b60006020828403121561013857600080fd5b6000610146848285016100e8565b91505092915050565b610158816101de565b82525050565b610167816101f0565b82525050565b6000604082019050610182600083018561014f565b61018f602083018461015e565b9392505050565b60006101a1826101b4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006101e982610202565b9050919050565b60006101fb826101d4565b9050919050565b600061020d82610214565b9050919050565b600061021f826101b4565b9050919050565b61022f81610196565b811461023a57600080fd5b50565b610246816101a8565b811461025157600080fd5b50565b603f806102626000396000f3fe6080604052600080fdfea2646970667358221220d344dd4186d696e1c632c18e4fc14e2e1428bffb870fefaab4934c08c3c0138d64736f6c634300060c003300000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e00000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000034242a391f8e2d9c8a4f11bbcadc385cee6b3e3200000000000000000000000046989eec5a978c766f108fee75c6c12dbfa313ef

Deployed Bytecode

0x60806040526004361061024a5760003560e01c80638da5cb5b11610139578063c084c3e1116100b6578063dd62ed3e1161007a578063dd62ed3e146108a7578063e534155d146108e4578063e82bef291461090f578063ea2f0b371461093a578063f2fde38b14610963578063fc528c1c1461098c57610251565b8063c084c3e1146107d2578063c0b0fda2146107fd578063c6a023e914610828578063cbac6d5814610851578063d91eb81b1461087c57610251565b8063a72905a2116100fd578063a72905a2146106eb578063a9059cbb14610728578063aaa83a0214610765578063bacf251b14610790578063be9a6555146107bb57610251565b80638da5cb5b1461060457806395d89b411461062f578063a3e295bc1461065a578063a457c2d714610685578063a6a2badc146106c257610251565b8063313ce567116101c757806370a082311161018b57806370a082311461051f57806371b9189c1461055c57806380f42e4e1461058557806385dc3004146105b05780638c0b5e22146105d957610251565b8063313ce56714610424578063395093511461044f57806349bd5a5e1461048c5780635342acb4146104b75780635a74c973146104f457610251565b806318160ddd1161020e57806318160ddd1461033b5780631df4ccfc1461036657806323b872dd146103915780632a9c72c8146103ce5780632f48ab7d146103f957610251565b806306fdde0314610256578063095ea7b3146102815780630999c0c2146102be5780630a656923146102e75780631694505e1461031057610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109a3565b6040516102789190613b07565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190613359565b610a45565b6040516102b59190613ad1565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190613359565b610a63565b005b3480156102f357600080fd5b5061030e6004803603810190610309919061331d565b610b0e565b005b34801561031c57600080fd5b50610325610bfe565b6040516103329190613aec565b60405180910390f35b34801561034757600080fd5b50610350610c24565b60405161035d9190613c69565b60405180910390f35b34801561037257600080fd5b5061037b610c2e565b6040516103889190613c69565b60405180910390f35b34801561039d57600080fd5b506103b860048036038101906103b391906132ce565b610c34565b6040516103c59190613ad1565b60405180910390f35b3480156103da57600080fd5b506103e3610d0d565b6040516103f09190613c69565b60405180910390f35b34801561040557600080fd5b5061040e610d13565b60405161041b91906139d8565b60405180910390f35b34801561043057600080fd5b50610439610d39565b6040516104469190613cde565b60405180910390f35b34801561045b57600080fd5b5061047660048036038101906104719190613359565b610d50565b6040516104839190613ad1565b60405180910390f35b34801561049857600080fd5b506104a1610e03565b6040516104ae91906139d8565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d99190613240565b610e29565b6040516104eb9190613ad1565b60405180910390f35b34801561050057600080fd5b50610509610e7f565b6040516105169190613c69565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190613240565b610e85565b6040516105539190613c69565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613395565b610ece565b005b34801561059157600080fd5b5061059a610feb565b6040516105a79190613c69565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190613240565b610ff1565b005b3480156105e557600080fd5b506105ee6110ca565b6040516105fb9190613c69565b60405180910390f35b34801561061057600080fd5b506106196110d0565b60405161062691906139d8565b60405180910390f35b34801561063b57600080fd5b506106446110f9565b6040516106519190613b07565b60405180910390f35b34801561066657600080fd5b5061066f61119b565b60405161067c91906139d8565b60405180910390f35b34801561069157600080fd5b506106ac60048036038101906106a79190613359565b6111c1565b6040516106b99190613ad1565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e4919061344e565b61128e565b005b3480156106f757600080fd5b50610712600480360381019061070d9190613240565b611337565b60405161071f9190613ad1565b60405180910390f35b34801561073457600080fd5b5061074f600480360381019061074a9190613359565b611357565b60405161075c9190613ad1565b60405180910390f35b34801561077157600080fd5b5061077a611375565b6040516107879190613ad1565b60405180910390f35b34801561079c57600080fd5b506107a5611388565b6040516107b29190613c69565b60405180910390f35b3480156107c757600080fd5b506107d061138e565b005b3480156107de57600080fd5b506107e7611447565b6040516107f49190613c69565b60405180910390f35b34801561080957600080fd5b5061081261144d565b60405161081f9190613c69565b60405180910390f35b34801561083457600080fd5b5061084f600480360381019061084a91906134a0565b611453565b005b34801561085d57600080fd5b506108666114fa565b6040516108739190613c69565b60405180910390f35b34801561088857600080fd5b50610891611500565b60405161089e9190613c69565b60405180910390f35b3480156108b357600080fd5b506108ce60048036038101906108c99190613292565b611506565b6040516108db9190613c69565b60405180910390f35b3480156108f057600080fd5b506108f961158d565b60405161090691906139d8565b60405180910390f35b34801561091b57600080fd5b506109246115b3565b60405161093191906139d8565b60405180910390f35b34801561094657600080fd5b50610961600480360381019061095c9190613240565b6115d9565b005b34801561096f57600080fd5b5061098a60048036038101906109859190613240565b6116c9565b005b34801561099857600080fd5b506109a161181b565b005b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a3b5780601f10610a1057610100808354040283529160200191610a3b565b820191906000526020600020905b815481529060010190602001808311610a1e57829003601f168201915b5050505050905090565b6000610a59610a526118cd565b84846118d5565b6001905092915050565b610a6b6118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90613bc9565b60405180910390fd5b610b0a82610b046118cd565b83611aa0565b5050565b610b166118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90613bc9565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b600b5481565b6000610c41848484611bd7565b610d0284610c4d6118cd565b610cfd85604051806060016040528060288152602001613f5c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cb36118cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121779092919063ffffffff16565b6118d5565b600190509392505050565b60165481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460009054906101000a900460ff16905090565b6000610df9610d5d6118cd565b84610df48560026000610d6e6118cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d290919063ffffffff16565b6118d5565b6001905092915050565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ed66118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a90613bc9565b60405180910390fd5b60005b8151811015610fe757600160036000848481518110610f8157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610f66565b5050565b60135481565b610ff96118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90613bc9565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111915780601f1061116657610100808354040283529160200191611191565b820191906000526020600020905b81548152906001019060200180831161117457829003601f168201915b5050505050905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112846111ce6118cd565b8461127f85604051806060016040528060258152602001613f8460259139600260006111f86118cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121779092919063ffffffff16565b6118d5565b6001905092915050565b6112966118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131a90613bc9565b60405180910390fd5b61133461132e6118cd565b82612227565b50565b600d6020528060005260406000206000915054906101000a900460ff1681565b600061136b6113646118cd565b8484611bd7565b6001905092915050565b601760009054906101000a900460ff1681565b60185481565b6113966118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90613bc9565b60405180910390fd5b6001601760006101000a81548160ff02191690831515021790555042601881905550565b60115481565b60085481565b61145b6118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df90613bc9565b60405180910390fd5b81601281905550806011819055505050565b60195481565b60095481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115e16118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590613bc9565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6116d16118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590613bc9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118236118cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790613bc9565b60405180910390fd5b6000601760006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193c90613c29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac90613b69565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a939190613c69565b60405180910390a3505050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401611ad3929190613aa8565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611b2191906139c1565b6000604051808303816000865af19150503d8060008114611b5e576040519150601f19603f3d011682016040523d82523d6000602084013e611b63565b606091505b5091509150818015611b915750600081511480611b90575080806020019051810190611b8f91906133d6565b5b5b611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc790613b49565b60405180910390fd5b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90613c09565b60405180910390fd5b60008111611c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8190613be9565b60405180910390fd5b600080611c978585612325565b80925081935050503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611cdf575060125460135410155b8015611cf55750611cef30610e85565b60135411155b8015611cff575081155b8015611d185750600e60009054906101000a900460ff16155b8015611d6e5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e1a57506103e8600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611de057600080fd5b505afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190613477565b115b15611e6f576001600e60006101000a81548160ff021916908315150217905550600060135490506000601381905550611e5281612674565b6000600e60006101000a81548160ff021916908315150217905550505b611e776130e4565b838160200181815250506000600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f265750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f30575082155b15611fd15760019050601760009054906101000a900460ff16611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f90613b29565b60405180910390fd5b601954601854014211611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790613ba9565b60405180910390fd5b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120745750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561207e575083155b1561211f5760019050601760009054906101000a900460ff166120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd90613b29565b60405180910390fd5b60195460185401421161211e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211590613ba9565b60405180910390fd5b5b80801561213757506016546121346000610e85565b10155b1561214157600090505b80826000019015159081151581525050801561216257612161858361278d565b5b61216e8787878561280d565b50505050505050565b60008383111582906121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b69190613b07565b60405180910390fd5b5060008385039050809150509392505050565b60008082840190508381101561221d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221490613b89565b60405180910390fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff8111801561225957600080fd5b506040519080825280601f01601f19166020018201604052801561228c5781602001600182028036833780820191505090505b5060405161229a91906139c1565b60006040518083038185875af1925050503d80600081146122d7576040519150601f19603f3d011682016040523d82523d6000602084013e6122dc565b606091505b5050905080612320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231790613c49565b60405180910390fd5b505050565b6000806000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561239257600080fd5b505afa1580156123a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ca9190613269565b90506000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561243657600080fd5b505afa15801561244a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246e91906133ff565b50506dffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016124df91906139d8565b60206040518083038186803b1580156124f757600080fd5b505afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f9190613477565b9050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125ce573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125be57508181115b156125cd576011548282031194505b5b600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561266a573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561265b57508181105b156126695760008183031193505b5b5050509250929050565b600061268a6002836129bf90919063ffffffff16565b905060006126a18284612a0990919063ffffffff16565b90506126ac82612a53565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161272b91906139d8565b60206040518083038186803b15801561274357600080fd5b505afa158015612757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277b9190613477565b90506127878282612c3a565b50505050565b6103e8600a5483028161279c57fe5b048160400181815250506103e86008548302816127b557fe5b048160600181815250506103e86009548302816127ce57fe5b0481608001818152505060006103e8600b548402816127e957fe5b0490506127ff8184612a0990919063ffffffff16565b826020018181525050505050565b61285f82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128f88160200151600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836020015160405161299c9190613c69565b60405180910390a38060000151156129b9576129b88185612ef2565b5b50505050565b6000612a0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f84565b905092915050565b6000612a4b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612177565b905092915050565b6060600267ffffffffffffffff81118015612a6d57600080fd5b50604051908082528060200260200182016040528015612a9c5781602001602082028036833780820191505090505b5090503081600081518110612aad57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612b1757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b7e30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118d5565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612c04959493929190613c84565b600060405180830381600087803b158015612c1e57600080fd5b505af1158015612c32573d6000803e3d6000fd5b505050505050565b612c6730600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118d5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630846040518463ffffffff1660e01b8152600401612ce893929190613a71565b602060405180830381600087803b158015612d0257600080fd5b505af1158015612d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3a91906133d6565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612dba929190613aa8565b602060405180830381600087803b158015612dd457600080fd5b505af1158015612de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0c91906133d6565b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e3370030601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16858560008030426040518963ffffffff1660e01b8152600401612e999897969594939291906139f3565b606060405180830381600087803b158015612eb357600080fd5b505af1158015612ec7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eeb91906134dc565b5050505050565b600082604001511115612f2357612f0e82604001518230612fe5565b81604001516013600082825401925050819055505b600082606001511115612f4157612f408260600151826000612fe5565b5b600082608001511115612f8057612f7f826080015182601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612fe5565b5b5050565b60008083118290612fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc29190613b07565b60405180910390fd5b506000838581612fd757fe5b049050809150509392505050565b61303783600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d290919063ffffffff16565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130d79190613c69565b60405180910390a3505050565b6040518060a00160405280600015158152602001600081526020016000815260200160008152602001600081525090565b60008135905061312481613ee8565b92915050565b60008151905061313981613ee8565b92915050565b600082601f83011261315057600080fd5b813561316361315e82613d26565b613cf9565b9150818183526020840193506020810190508385602084028201111561318857600080fd5b60005b838110156131b8578161319e8882613115565b84526020840193506020830192505060018101905061318b565b5050505092915050565b6000813590506131d181613eff565b92915050565b6000815190506131e681613eff565b92915050565b6000815190506131fb81613f16565b92915050565b60008135905061321081613f2d565b92915050565b60008151905061322581613f2d565b92915050565b60008151905061323a81613f44565b92915050565b60006020828403121561325257600080fd5b600061326084828501613115565b91505092915050565b60006020828403121561327b57600080fd5b60006132898482850161312a565b91505092915050565b600080604083850312156132a557600080fd5b60006132b385828601613115565b92505060206132c485828601613115565b9150509250929050565b6000806000606084860312156132e357600080fd5b60006132f186828701613115565b935050602061330286828701613115565b925050604061331386828701613201565b9150509250925092565b6000806040838503121561333057600080fd5b600061333e85828601613115565b925050602061334f858286016131c2565b9150509250929050565b6000806040838503121561336c57600080fd5b600061337a85828601613115565b925050602061338b85828601613201565b9150509250929050565b6000602082840312156133a757600080fd5b600082013567ffffffffffffffff8111156133c157600080fd5b6133cd8482850161313f565b91505092915050565b6000602082840312156133e857600080fd5b60006133f6848285016131d7565b91505092915050565b60008060006060848603121561341457600080fd5b6000613422868287016131ec565b9350506020613433868287016131ec565b92505060406134448682870161322b565b9150509250925092565b60006020828403121561346057600080fd5b600061346e84828501613201565b91505092915050565b60006020828403121561348957600080fd5b600061349784828501613216565b91505092915050565b600080604083850312156134b357600080fd5b60006134c185828601613201565b92505060206134d285828601613201565b9150509250929050565b6000806000606084860312156134f157600080fd5b60006134ff86828701613216565b935050602061351086828701613216565b925050604061352186828701613216565b9150509250925092565b60006135378383613552565b60208301905092915050565b61354c81613e38565b82525050565b61355b81613db9565b82525050565b61356a81613db9565b82525050565b600061357b82613d5e565b6135858185613d8c565b935061359083613d4e565b8060005b838110156135c15781516135a8888261352b565b97506135b383613d7f565b925050600181019050613594565b5085935050505092915050565b6135d781613dcb565b82525050565b60006135e882613d69565b6135f28185613d9d565b9350613602818560208601613ea4565b80840191505092915050565b61361781613e4a565b82525050565b61362681613e6e565b82525050565b600061363782613d74565b6136418185613da8565b9350613651818560208601613ea4565b61365a81613ed7565b840191505092915050565b6000613672600983613da8565b91507f6e6f7420737461727400000000000000000000000000000000000000000000006000830152602082019050919050565b60006136b2601f83613da8565b91507f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006000830152602082019050919050565b60006136f2602283613da8565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613758601b83613da8565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000613798600983613da8565b91507f6e6f7420616c6c6f7700000000000000000000000000000000000000000000006000830152602082019050919050565b60006137d8602083613da8565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613818602983613da8565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b600061387e602583613da8565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138e4602483613da8565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061394a602383613da8565b91507f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960008301527f4c454400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6139ac81613e11565b82525050565b6139bb81613e2b565b82525050565b60006139cd82846135dd565b915081905092915050565b60006020820190506139ed6000830184613561565b92915050565b600061010082019050613a09600083018b613543565b613a16602083018a613561565b613a2360408301896139a3565b613a3060608301886139a3565b613a3d608083018761361d565b613a4a60a083018661361d565b613a5760c0830185613543565b613a6460e08301846139a3565b9998505050505050505050565b6000606082019050613a866000830186613561565b613a936020830185613543565b613aa060408301846139a3565b949350505050565b6000604082019050613abd6000830185613561565b613aca60208301846139a3565b9392505050565b6000602082019050613ae660008301846135ce565b92915050565b6000602082019050613b01600083018461360e565b92915050565b60006020820190508181036000830152613b21818461362c565b905092915050565b60006020820190508181036000830152613b4281613665565b9050919050565b60006020820190508181036000830152613b62816136a5565b9050919050565b60006020820190508181036000830152613b82816136e5565b9050919050565b60006020820190508181036000830152613ba28161374b565b9050919050565b60006020820190508181036000830152613bc28161378b565b9050919050565b60006020820190508181036000830152613be2816137cb565b9050919050565b60006020820190508181036000830152613c028161380b565b9050919050565b60006020820190508181036000830152613c2281613871565b9050919050565b60006020820190508181036000830152613c42816138d7565b9050919050565b60006020820190508181036000830152613c628161393d565b9050919050565b6000602082019050613c7e60008301846139a3565b92915050565b600060a082019050613c9960008301886139a3565b613ca6602083018761361d565b8181036040830152613cb88186613570565b9050613cc76060830185613561565b613cd460808301846139a3565b9695505050505050565b6000602082019050613cf360008301846139b2565b92915050565b6000604051905081810181811067ffffffffffffffff82111715613d1c57600080fd5b8060405250919050565b600067ffffffffffffffff821115613d3d57600080fd5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613dc482613df1565b9050919050565b60008115159050919050565b60006dffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000613e4382613e80565b9050919050565b6000613e5582613e5c565b9050919050565b6000613e6782613df1565b9050919050565b6000613e7982613e11565b9050919050565b6000613e8b82613e92565b9050919050565b6000613e9d82613df1565b9050919050565b60005b83811015613ec2578082015181840152602081019050613ea7565b83811115613ed1576000848401525b50505050565b6000601f19601f8301169050919050565b613ef181613db9565b8114613efc57600080fd5b50565b613f0881613dcb565b8114613f1357600080fd5b50565b613f1f81613dd7565b8114613f2a57600080fd5b50565b613f3681613e11565b8114613f4157600080fd5b50565b613f4d81613e1b565b8114613f5857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f4351cbaf8de320f274a34e50786eb548cb2098f09003577f59ff42d8bb9f8ab64736f6c634300060c0033

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

00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e00000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000034242a391f8e2d9c8a4f11bbcadc385cee6b3e3200000000000000000000000046989eec5a978c766f108fee75c6c12dbfa313ef

-----Decoded View---------------
Arg [0] : _route (address): 0x10ED43C718714eb63d5aA57B78B54704E256024E
Arg [1] : _usdt (address): 0x55d398326f99059fF775485246999027B3197955
Arg [2] : _holder (address): 0x34242A391F8E2D9C8A4f11bbcadc385CEE6B3E32
Arg [3] : _fundAddress (address): 0x46989EEc5A978c766F108Fee75c6c12dBFA313Ef

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e
Arg [1] : 00000000000000000000000055d398326f99059ff775485246999027b3197955
Arg [2] : 00000000000000000000000034242a391f8e2d9c8a4f11bbcadc385cee6b3e32
Arg [3] : 00000000000000000000000046989eec5a978c766f108fee75c6c12dbfa313ef


Deployed Bytecode Sourcemap

13169:10792:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15668:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16499:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23676:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15116:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13791:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15945:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13756:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16668:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14192:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14166:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15854:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16989:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13924:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17821:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13722:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16048:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17496:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14106:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15568:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14068:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5433:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15759:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13959:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17215:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23827:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13841:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16173:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14234:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14271:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15231:112;;;;;;;;;;;;;:::i;:::-;;14024:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13653:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15429:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14303:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13687:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16348:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13994:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14133:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17702:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5647:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15350:73;;;;;;;;;;;;;:::i;:::-;;15668:83;15705:13;15738:5;15731:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15668:83;:::o;16499:161::-;16574:4;16591:39;16600:12;:10;:12::i;:::-;16614:7;16623:6;16591:8;:39::i;:::-;16648:4;16641:11;;16499:161;;;;:::o;23676:143::-;5570:12;:10;:12::i;:::-;5560:22;;:6;;;;;;;;;;:22;;;5552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23756:55:::1;23784:4;23790:12;:10;:12::i;:::-;23804:6;23756:27;:55::i;:::-;23676:143:::0;;:::o;15116:107::-;5570:12;:10;:12::i;:::-;5560:22;;:6;;;;;;;;;;:22;;;5552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15208:7:::1;15191:8;:14;15200:4;15191:14;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;15116:107:::0;;:::o;13791:41::-;;;;;;;;;;;;;:::o;15945:95::-;15998:7;16025;;16018:14;;15945:95;:::o;13756:28::-;;;;:::o;16668:313::-;16766:4;16783:36;16793:6;16801:9;16812:6;16783:9;:36::i;:::-;16830:121;16839:6;16847:12;:10;:12::i;:::-;16861:89;16899:6;16861:89;;;;;;;;;;;;;;;;;:11;:19;16873:6;16861:19;;;;;;;;;;;;;;;:33;16881:12;:10;:12::i;:::-;16861:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;16830:8;:121::i;:::-;16969:4;16962:11;;16668:313;;;;;:::o;14192:35::-;;;;:::o;14166:19::-;;;;;;;;;;;;;:::o;15854:83::-;15895:5;15920:9;;;;;;;;;;;15913:16;;15854:83;:::o;16989:218::-;17077:4;17094:83;17103:12;:10;:12::i;:::-;17117:7;17126:50;17165:10;17126:11;:25;17138:12;:10;:12::i;:::-;17126:25;;;;;;;;;;;;;;;:34;17152:7;17126:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17094:8;:83::i;:::-;17195:4;17188:11;;16989:218;;;;:::o;13924:28::-;;;;;;;;;;;;;:::o;17821:123::-;17885:4;17909:18;:27;17928:7;17909:27;;;;;;;;;;;;;;;;;;;;;;;;;17902:34;;17821:123;;;:::o;13722:25::-;;;;:::o;16048:117::-;16114:7;16141;:16;16149:7;16141:16;;;;;;;;;;;;;;;;16134:23;;16048:117;;;:::o;17496:194::-;5570:12;:10;:12::i;:::-;5560:22;;:6;;;;;;;;;;:22;;;5552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17580:6:::1;17575:108;17596:8;:15;17592:1;:19;17575:108;;;17667:4;17633:18;:31;17652:8;17661:1;17652:11;;;;;;;;;;;;;;17633:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;17613:3;;;;;;;17575:108;;;;17496:194:::0;:::o;14106:20::-;;;;:::o;15568:92::-;5570:12;:10;:12::i;:::-;5560:22;;:6;;;;;;;;;;:22;;;5552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15648:4:::1;15634:11;;:18;;;;;;;;;;;;;;;;;;15568:92:::0;:::o;14068:31::-;;;;:::o;5433:79::-;5471:7;5498:6;;;;;;;;;;;5491:13;;5433:79;:::o;15759:87::-;15798:13;15831:7;15824:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15759:87;:::o;13959:28::-;;;;;;;;;;;;;:::o;17215:269::-;17308:4;17325:129;17334:12;:10;:12::i;:::-;17348:7;17357:96;17396:15;17357:96;;;;;;;;;;;;;;;;;:11;:25;17369:12;:10;:12::i;:::-;17357:25;;;;;;;;;;;;;;;:34;17383:7;17357:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17325:8;:129::i;:::-;17472:4;17465:11;;17215:269;;;;:::o;23827:129::-;5570:12;:10;:12::i;:::-;5560:22;;:6;;;;;;;;;;:22;;;5552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23896:52:::1;23927:12;:10;:12::i;:::-;23941:6;23896:30;:52::i;:::-;23827:129:::0;:::o;13841:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;16173:167::-;16251:4;16268:42;16278:12;:10;:12::i;:::-;16292:9;16303:6;16268:9;:42::i;:::-;16328:4;16321:11;;16173:167;;;;:::o;14234:30::-;;;;;;;;;;;;;:::o;14271:25::-;;;;:::o;15231:112::-;5570:12;:10;:12::i;:::-;5560:22;;:6;;;;;;;;;;:22;;;5552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15289:4:::1;15276:10;;:17;;;;;;;;;;;;;;;;;;15320:15;15304:13;:31;;;;15231:112::o:0;14024:37::-;;;;:::o;13653:27::-;;;;:::o;15429:127::-;5570:12;:10;:12::i;:::-;5560:22;;:6;;;;;;;;;;:22;;;5552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15509:3:::1;15495:11;:17;;;;15545:3;15523:19;:25;;;;15429:127:::0;;:::o;14303:30::-;;;;:::o;13687:28::-;;;;:::o;16348:143::-;16429:7;16456:11;:18;16468:5;16456:18;;;;;;;;;;;;;;;:27;16475:7;16456:27;;;;;;;;;;;;;;;;16449:34;;16348:143;;;;:::o;13994:21::-;;;;;;;;;;;;;:::o;14133:26::-;;;;;;;;;;;;;:::o;17702:110::-;5570:12;:10;:12::i;:::-;5560:22;;:6;;;;;;;;;;:22;;;5552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17799:5:::1;17769:18;:27;17788:7;17769:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;17702:110:::0;:::o;5647:160::-;5570:12;:10;:12::i;:::-;5560:22;;:6;;;;;;;;;;:22;;;5552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5762:8:::1;5733:38;;5754:6;::::0;::::1;;;;;;;;5733:38;;;;;;;;;;;;5791:8;5782:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5647:160:::0;:::o;15350:73::-;5570:12;:10;:12::i;:::-;5560:22;;:6;;;;;;;;;;:22;;;5552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15410:5:::1;15397:10;;:18;;;;;;;;;;;;;;;;;;15350:73::o:0;2309:106::-;2362:15;2397:10;2390:17;;2309:106;:::o;18166:337::-;18276:1;18259:19;;:5;:19;;;;18251:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18357:1;18338:21;;:7;:21;;;;18330:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18441:6;18411:11;:18;18423:5;18411:18;;;;;;;;;;;;;;;:27;18430:7;18411:27;;;;;;;;;;;;;;;:36;;;;18479:7;18463:32;;18472:5;18463:32;;;18488:6;18463:32;;;;;;:::i;:::-;;;;;;;;18166:337;;;:::o;7597:361::-;7746:12;7760:17;7781:5;:10;;7815;7827:2;7831:5;7792:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7781:57;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7745:93;;;;7857:7;:57;;;;;7884:1;7869:4;:11;:16;:44;;;;7900:4;7889:24;;;;;;;;;;;;:::i;:::-;7869:44;7857:57;7849:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;7597:361;;;;;:::o;20032:1789::-;20170:1;20154:18;;:4;:18;;;;20146:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20242:1;20233:6;:10;20225:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20302:19;20332;20398:21;20411:4;20416:2;20398:12;:21::i;:::-;20362:57;;;;;;;;20468:4;20452:21;;:4;:21;;;;:62;;;;;20503:11;;20491:8;;:23;;20452:62;:115;;;;;20543:24;20561:4;20543:9;:24::i;:::-;20531:8;;:36;;20452:115;:147;;;;;20585:14;20584:15;20452:147;:181;;;;;20617:16;;;;;;;;;;;20616:17;20452:181;:214;;;;;20652:8;:14;20661:4;20652:14;;;;;;;;;;;;;;;;;;;;;;;;;20651:15;20452:214;:274;;;;;20722:4;20691:13;;;;;;;;;;;20684:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;20452:274;20432:502;;;20768:4;20749:16;;:23;;;;;;;;;;;;;;;;;;20791:6;20800:8;;20791:17;;20838:1;20827:8;:12;;;;20858:17;20873:1;20858:14;:17::i;:::-;20913:5;20894:16;;:24;;;;;;;;;;;;;;;;;;20432:502;;20954:18;;:::i;:::-;21007:6;20983:5;:21;;:30;;;;;21026:12;21063:8;:14;21072:4;21063:14;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;21082:18;:22;21101:2;21082:22;;;;;;;;;;;;;;;;;;;;;;;;;21081:23;21063:41;:60;;;;;21109:14;21108:15;21063:60;21059:236;;;21149:4;21139:14;;21176:10;;;;;;;;;;;21168:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;21257:13;;21241;;:29;21223:15;:47;21214:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;21059:236;21311:8;:12;21320:2;21311:12;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;21328:18;:24;21347:4;21328:24;;;;;;;;;;;;;;;;;;;;;;;;;21327:25;21311:41;:60;;;;;21357:14;21356:15;21311:60;21307:236;;;21397:4;21387:14;;21424:10;;;;;;;;;;;21416:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;21505:13;;21489;;:29;21471:15;:47;21462:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;21307:236;21559:7;:45;;;;;21595:9;;21570:21;21588:1;21570:9;:21::i;:::-;:34;;21559:45;21555:92;;;21630:5;21620:15;;21555:92;21675:7;21659:5;:13;;:23;;;;;;;;;;;21697:7;21693:64;;;21721:24;21732:6;21739:5;21721:10;:24::i;:::-;21693:64;21777:36;21792:4;21797:2;21800:6;21807:5;21777:14;:36::i;:::-;20032:1789;;;;;;;:::o;1161:192::-;1247:7;1280:1;1275;:6;;1283:12;1267:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1307:9;1323:1;1319;:5;1307:17;;1344:1;1337:8;;;1161:192;;;;;:::o;824:181::-;882:7;902:9;918:1;914;:5;902:17;;943:1;938;:6;;930:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;996:1;989:8;;;824:181;;;;:::o;8376:195::-;8446:12;8463:2;:7;;8477:5;8494:1;8484:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8463:34;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8445:52;;;8516:7;8508:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8376:195;;;:::o;19378:646::-;19446:10;19457;19479:14;19519:13;;;;;;;;;;;19496:45;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19479:64;;19555:7;19591:13;;;;;;;;;;;19568:50;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19554:66;;;;;;19631:9;19650:6;19643:24;;;19676:13;;;;;;;;;;;19643:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19631:60;;19706:8;:12;19715:2;19706:12;;;;;;;;;;;;;;;;;;;;;;;;;19702:160;;;19757:4;19739:23;;:6;:23;;;;:36;;;;;19773:2;19766:4;:9;19739:36;19735:116;;;19816:19;;19811:2;19804:4;:9;:31;19796:39;;19735:116;19702:160;19876:8;:14;19885:4;19876:14;;;;;;;;;;;;;;;;;;;;;;;;;19872:145;;;19929:4;19911:23;;:6;:23;;;;:36;;;;;19945:2;19938:4;:9;19911:36;19907:99;;;19988:1;19981:4;19976:2;:9;:13;19968:21;;19907:99;19872:145;19378:646;;;;;;;;:::o;22226:350::-;22310:12;22325:27;22350:1;22325:20;:24;;:27;;;;:::i;:::-;22310:42;;22363:17;22383:30;22408:4;22383:20;:24;;:30;;;;:::i;:::-;22363:50;;22426:22;22443:4;22426:16;:22::i;:::-;22462:18;22490:4;;;;;;;;;;;22483:22;;;22506:13;;;;;;;;;;;22483:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22462:58;;22533:35;22546:9;22557:10;22533:12;:35::i;:::-;22226:350;;;;:::o;18653:324::-;18765:4;18756:6;;18746:7;:16;:23;;;;;;18734:5;:9;;:35;;;;;18815:4;18804:8;;18794:7;:18;:25;;;;;;18780:5;:11;;:39;;;;;18865:4;18854:8;;18844:7;:18;:25;;;;;;18830:5;:11;;:39;;;;;18880:9;18913:4;18902:8;;18892:7;:18;:25;;;;;;18880:37;;18952:17;18964:4;18952:7;:11;;:17;;;;:::i;:::-;18928:5;:21;;:41;;;;;18653:324;;;:::o;21829:388::-;21961:28;21981:7;21961;:15;21969:6;21961:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21943:7;:15;21951:6;21943:15;;;;;;;;;;;;;;;:46;;;;22021:45;22044:5;:21;;;22021:7;:18;22029:9;22021:18;;;;;;;;;;;;;;;;:22;;:45;;;;:::i;:::-;22000:7;:18;22008:9;22000:18;;;;;;;;;;;;;;;:66;;;;22100:9;22083:50;;22092:6;22083:50;;;22111:5;:21;;;22083:50;;;;;;:::i;:::-;;;;;;;;22147:5;:13;;;22144:66;;;22176:22;22185:5;22191:6;22176:8;:22::i;:::-;22144:66;21829:388;;;;:::o;1621:132::-;1679:7;1706:39;1710:1;1713;1706:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1699:46;;1621:132;;;;:::o;1015:136::-;1073:7;1100:43;1104:1;1107;1100:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1093:50;;1015:136;;;;:::o;22584:471::-;22660:21;22698:1;22684:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22660:40;;22729:4;22711;22716:1;22711:7;;;;;;;;;;;;;:23;;;;;;;;;;;22755:4;;;;;;;;;;;22745;22750:1;22745:7;;;;;;;;;;;;;:14;;;;;;;;;;;22772:62;22789:4;22804:15;;;;;;;;;;;22822:11;22772:8;:62::i;:::-;22847:15;;;;;;;;;;;:69;;;22931:11;22957:1;22974:4;22993:13;;;;;;;;;;;23021:15;22847:200;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22584:471;;:::o;23065:601::-;23156:62;23173:4;23188:15;;;;;;;;;;;23206:11;23156:8;:62::i;:::-;23238:4;;;;;;;;;;;23231:25;;;23257:13;;;;;;;;;;;23279:4;23285:9;23231:64;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23315:4;;;;;;;;;;;23308:20;;;23337:15;;;;;;;;;;;23355:9;23308:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23378:15;;;;;;;;;;;:28;;;23429:4;23449;;;;;;;;;;;23468:11;23494:9;23518:1;23561;23612:4;23632:15;23378:280;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23065:601;;:::o;18985:383::-;19070:1;19058:5;:9;;;:13;19054:119;;;19088:37;19094:5;:9;;;19105:4;19119;19088:5;:37::i;:::-;19152:5;:9;;;19140:8;;:21;;;;;;;;;;;19054:119;19201:1;19187:5;:11;;;:15;19183:84;;;19219:36;19225:5;:11;;;19238:4;19252:1;19219:5;:36::i;:::-;19183:84;19295:1;19281:5;:11;;;:15;19277:84;;;19314:35;19320:5;:11;;;19332:4;19337:11;;;;;;;;;;;19314:5;:35::i;:::-;19277:84;18985:383;;:::o;1764:189::-;1850:7;1882:1;1878;:5;1885:12;1870:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1909:9;1925:1;1921;:5;;;;;;1909:17;;1944:1;1937:8;;;1764:189;;;;;:::o;17993:161::-;18081:23;18097:6;18081:7;:11;18089:2;18081:11;;;;;;;;;;;;;;;;:15;;:23;;;;:::i;:::-;18067:7;:11;18075:2;18067:11;;;;;;;;;;;;;;;:37;;;;18135:2;18120:26;;18129:4;18120:26;;;18139:6;18120:26;;;;;;:::i;:::-;;;;;;;;17993:161;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:134::-;;226:6;220:13;211:22;;238:33;265:5;238:33;:::i;:::-;205:71;;;;:::o;301:707::-;;418:3;411:4;403:6;399:17;395:27;385:2;;436:1;433;426:12;385:2;473:6;460:20;495:80;510:64;567:6;510:64;:::i;:::-;495:80;:::i;:::-;486:89;;592:5;617:6;610:5;603:21;647:4;639:6;635:17;625:27;;669:4;664:3;660:14;653:21;;722:6;769:3;761:4;753:6;749:17;744:3;740:27;737:36;734:2;;;786:1;783;776:12;734:2;811:1;796:206;821:6;818:1;815:13;796:206;;;879:3;901:37;934:3;922:10;901:37;:::i;:::-;896:3;889:50;962:4;957:3;953:14;946:21;;990:4;985:3;981:14;974:21;;853:149;843:1;840;836:9;831:14;;796:206;;;800:14;378:630;;;;;;;:::o;1016:124::-;;1093:6;1080:20;1071:29;;1105:30;1129:5;1105:30;:::i;:::-;1065:75;;;;:::o;1147:128::-;;1228:6;1222:13;1213:22;;1240:30;1264:5;1240:30;:::i;:::-;1207:68;;;;:::o;1282:134::-;;1366:6;1360:13;1351:22;;1378:33;1405:5;1378:33;:::i;:::-;1345:71;;;;:::o;1423:130::-;;1503:6;1490:20;1481:29;;1515:33;1542:5;1515:33;:::i;:::-;1475:78;;;;:::o;1560:134::-;;1644:6;1638:13;1629:22;;1656:33;1683:5;1656:33;:::i;:::-;1623:71;;;;:::o;1701:132::-;;1784:6;1778:13;1769:22;;1796:32;1822:5;1796:32;:::i;:::-;1763:70;;;;:::o;1840:241::-;;1944:2;1932:9;1923:7;1919:23;1915:32;1912:2;;;1960:1;1957;1950:12;1912:2;1995:1;2012:53;2057:7;2048:6;2037:9;2033:22;2012:53;:::i;:::-;2002:63;;1974:97;1906:175;;;;:::o;2088:263::-;;2203:2;2191:9;2182:7;2178:23;2174:32;2171:2;;;2219:1;2216;2209:12;2171:2;2254:1;2271:64;2327:7;2318:6;2307:9;2303:22;2271:64;:::i;:::-;2261:74;;2233:108;2165:186;;;;:::o;2358:366::-;;;2479:2;2467:9;2458:7;2454:23;2450:32;2447:2;;;2495:1;2492;2485:12;2447:2;2530:1;2547:53;2592:7;2583:6;2572:9;2568:22;2547:53;:::i;:::-;2537:63;;2509:97;2637:2;2655:53;2700:7;2691:6;2680:9;2676:22;2655:53;:::i;:::-;2645:63;;2616:98;2441:283;;;;;:::o;2731:491::-;;;;2869:2;2857:9;2848:7;2844:23;2840:32;2837:2;;;2885:1;2882;2875:12;2837:2;2920:1;2937:53;2982:7;2973:6;2962:9;2958:22;2937:53;:::i;:::-;2927:63;;2899:97;3027:2;3045:53;3090:7;3081:6;3070:9;3066:22;3045:53;:::i;:::-;3035:63;;3006:98;3135:2;3153:53;3198:7;3189:6;3178:9;3174:22;3153:53;:::i;:::-;3143:63;;3114:98;2831:391;;;;;:::o;3229:360::-;;;3347:2;3335:9;3326:7;3322:23;3318:32;3315:2;;;3363:1;3360;3353:12;3315:2;3398:1;3415:53;3460:7;3451:6;3440:9;3436:22;3415:53;:::i;:::-;3405:63;;3377:97;3505:2;3523:50;3565:7;3556:6;3545:9;3541:22;3523:50;:::i;:::-;3513:60;;3484:95;3309:280;;;;;:::o;3596:366::-;;;3717:2;3705:9;3696:7;3692:23;3688:32;3685:2;;;3733:1;3730;3723:12;3685:2;3768:1;3785:53;3830:7;3821:6;3810:9;3806:22;3785:53;:::i;:::-;3775:63;;3747:97;3875:2;3893:53;3938:7;3929:6;3918:9;3914:22;3893:53;:::i;:::-;3883:63;;3854:98;3679:283;;;;;:::o;3969:377::-;;4098:2;4086:9;4077:7;4073:23;4069:32;4066:2;;;4114:1;4111;4104:12;4066:2;4177:1;4166:9;4162:17;4149:31;4200:18;4192:6;4189:30;4186:2;;;4232:1;4229;4222:12;4186:2;4252:78;4322:7;4313:6;4302:9;4298:22;4252:78;:::i;:::-;4242:88;;4128:208;4060:286;;;;:::o;4353:257::-;;4465:2;4453:9;4444:7;4440:23;4436:32;4433:2;;;4481:1;4478;4471:12;4433:2;4516:1;4533:61;4586:7;4577:6;4566:9;4562:22;4533:61;:::i;:::-;4523:71;;4495:105;4427:183;;;;:::o;4617:533::-;;;;4765:2;4753:9;4744:7;4740:23;4736:32;4733:2;;;4781:1;4778;4771:12;4733:2;4816:1;4833:64;4889:7;4880:6;4869:9;4865:22;4833:64;:::i;:::-;4823:74;;4795:108;4934:2;4952:64;5008:7;4999:6;4988:9;4984:22;4952:64;:::i;:::-;4942:74;;4913:109;5053:2;5071:63;5126:7;5117:6;5106:9;5102:22;5071:63;:::i;:::-;5061:73;;5032:108;4727:423;;;;;:::o;5157:241::-;;5261:2;5249:9;5240:7;5236:23;5232:32;5229:2;;;5277:1;5274;5267:12;5229:2;5312:1;5329:53;5374:7;5365:6;5354:9;5350:22;5329:53;:::i;:::-;5319:63;;5291:97;5223:175;;;;:::o;5405:263::-;;5520:2;5508:9;5499:7;5495:23;5491:32;5488:2;;;5536:1;5533;5526:12;5488:2;5571:1;5588:64;5644:7;5635:6;5624:9;5620:22;5588:64;:::i;:::-;5578:74;;5550:108;5482:186;;;;:::o;5675:366::-;;;5796:2;5784:9;5775:7;5771:23;5767:32;5764:2;;;5812:1;5809;5802:12;5764:2;5847:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5826:97;5954:2;5972:53;6017:7;6008:6;5997:9;5993:22;5972:53;:::i;:::-;5962:63;;5933:98;5758:283;;;;;:::o;6048:535::-;;;;6197:2;6185:9;6176:7;6172:23;6168:32;6165:2;;;6213:1;6210;6203:12;6165:2;6248:1;6265:64;6321:7;6312:6;6301:9;6297:22;6265:64;:::i;:::-;6255:74;;6227:108;6366:2;6384:64;6440:7;6431:6;6420:9;6416:22;6384:64;:::i;:::-;6374:74;;6345:109;6485:2;6503:64;6559:7;6550:6;6539:9;6535:22;6503:64;:::i;:::-;6493:74;;6464:109;6159:424;;;;;:::o;6591:173::-;;6678:46;6720:3;6712:6;6678:46;:::i;:::-;6753:4;6748:3;6744:14;6730:28;;6671:93;;;;:::o;6772:142::-;6863:45;6902:5;6863:45;:::i;:::-;6858:3;6851:58;6845:69;;:::o;6921:103::-;6994:24;7012:5;6994:24;:::i;:::-;6989:3;6982:37;6976:48;;:::o;7031:113::-;7114:24;7132:5;7114:24;:::i;:::-;7109:3;7102:37;7096:48;;:::o;7182:690::-;;7327:54;7375:5;7327:54;:::i;:::-;7394:86;7473:6;7468:3;7394:86;:::i;:::-;7387:93;;7501:56;7551:5;7501:56;:::i;:::-;7577:7;7605:1;7590:260;7615:6;7612:1;7609:13;7590:260;;;7682:6;7676:13;7703:63;7762:3;7747:13;7703:63;:::i;:::-;7696:70;;7783:60;7836:6;7783:60;:::i;:::-;7773:70;;7647:203;7637:1;7634;7630:9;7625:14;;7590:260;;;7594:14;7863:3;7856:10;;7306:566;;;;;;;:::o;7880:104::-;7957:21;7972:5;7957:21;:::i;:::-;7952:3;7945:34;7939:45;;:::o;7991:356::-;;8119:38;8151:5;8119:38;:::i;:::-;8169:88;8250:6;8245:3;8169:88;:::i;:::-;8162:95;;8262:52;8307:6;8302:3;8295:4;8288:5;8284:16;8262:52;:::i;:::-;8335:6;8330:3;8326:16;8319:23;;8099:248;;;;;:::o;8354:178::-;8463:63;8520:5;8463:63;:::i;:::-;8458:3;8451:76;8445:87;;:::o;8539:142::-;8630:45;8669:5;8630:45;:::i;:::-;8625:3;8618:58;8612:69;;:::o;8688:347::-;;8800:39;8833:5;8800:39;:::i;:::-;8851:71;8915:6;8910:3;8851:71;:::i;:::-;8844:78;;8927:52;8972:6;8967:3;8960:4;8953:5;8949:16;8927:52;:::i;:::-;9000:29;9022:6;9000:29;:::i;:::-;8995:3;8991:39;8984:46;;8780:255;;;;;:::o;9043:308::-;;9203:66;9267:1;9262:3;9203:66;:::i;:::-;9196:73;;9302:11;9298:1;9293:3;9289:11;9282:32;9342:2;9337:3;9333:12;9326:19;;9189:162;;;:::o;9360:331::-;;9520:67;9584:2;9579:3;9520:67;:::i;:::-;9513:74;;9620:33;9616:1;9611:3;9607:11;9600:54;9682:2;9677:3;9673:12;9666:19;;9506:185;;;:::o;9700:371::-;;9860:67;9924:2;9919:3;9860:67;:::i;:::-;9853:74;;9960:34;9956:1;9951:3;9947:11;9940:55;10029:4;10024:2;10019:3;10015:12;10008:26;10062:2;10057:3;10053:12;10046:19;;9846:225;;;:::o;10080:327::-;;10240:67;10304:2;10299:3;10240:67;:::i;:::-;10233:74;;10340:29;10336:1;10331:3;10327:11;10320:50;10398:2;10393:3;10389:12;10382:19;;10226:181;;;:::o;10416:308::-;;10576:66;10640:1;10635:3;10576:66;:::i;:::-;10569:73;;10675:11;10671:1;10666:3;10662:11;10655:32;10715:2;10710:3;10706:12;10699:19;;10562:162;;;:::o;10733:332::-;;10893:67;10957:2;10952:3;10893:67;:::i;:::-;10886:74;;10993:34;10989:1;10984:3;10980:11;10973:55;11056:2;11051:3;11047:12;11040:19;;10879:186;;;:::o;11074:378::-;;11234:67;11298:2;11293:3;11234:67;:::i;:::-;11227:74;;11334:34;11330:1;11325:3;11321:11;11314:55;11403:11;11398:2;11393:3;11389:12;11382:33;11443:2;11438:3;11434:12;11427:19;;11220:232;;;:::o;11461:374::-;;11621:67;11685:2;11680:3;11621:67;:::i;:::-;11614:74;;11721:34;11717:1;11712:3;11708:11;11701:55;11790:7;11785:2;11780:3;11776:12;11769:29;11826:2;11821:3;11817:12;11810:19;;11607:228;;;:::o;11844:373::-;;12004:67;12068:2;12063:3;12004:67;:::i;:::-;11997:74;;12104:34;12100:1;12095:3;12091:11;12084:55;12173:6;12168:2;12163:3;12159:12;12152:28;12208:2;12203:3;12199:12;12192:19;;11990:227;;;:::o;12226:372::-;;12386:67;12450:2;12445:3;12386:67;:::i;:::-;12379:74;;12486:34;12482:1;12477:3;12473:11;12466:55;12555:5;12550:2;12545:3;12541:12;12534:27;12589:2;12584:3;12580:12;12573:19;;12372:226;;;:::o;12606:113::-;12689:24;12707:5;12689:24;:::i;:::-;12684:3;12677:37;12671:48;;:::o;12726:107::-;12805:22;12821:5;12805:22;:::i;:::-;12800:3;12793:35;12787:46;;:::o;12840:271::-;;12993:93;13082:3;13073:6;12993:93;:::i;:::-;12986:100;;13103:3;13096:10;;12974:137;;;;:::o;13118:222::-;;13245:2;13234:9;13230:18;13222:26;;13259:71;13327:1;13316:9;13312:17;13303:6;13259:71;:::i;:::-;13216:124;;;;:::o;13347:1068::-;;13702:3;13691:9;13687:19;13679:27;;13717:79;13793:1;13782:9;13778:17;13769:6;13717:79;:::i;:::-;13807:72;13875:2;13864:9;13860:18;13851:6;13807:72;:::i;:::-;13890;13958:2;13947:9;13943:18;13934:6;13890:72;:::i;:::-;13973;14041:2;14030:9;14026:18;14017:6;13973:72;:::i;:::-;14056:81;14132:3;14121:9;14117:19;14108:6;14056:81;:::i;:::-;14148;14224:3;14213:9;14209:19;14200:6;14148:81;:::i;:::-;14240;14316:3;14305:9;14301:19;14292:6;14240:81;:::i;:::-;14332:73;14400:3;14389:9;14385:19;14376:6;14332:73;:::i;:::-;13673:742;;;;;;;;;;;:::o;14422:460::-;;14613:2;14602:9;14598:18;14590:26;;14627:71;14695:1;14684:9;14680:17;14671:6;14627:71;:::i;:::-;14709:80;14785:2;14774:9;14770:18;14761:6;14709:80;:::i;:::-;14800:72;14868:2;14857:9;14853:18;14844:6;14800:72;:::i;:::-;14584:298;;;;;;:::o;14889:333::-;;15044:2;15033:9;15029:18;15021:26;;15058:71;15126:1;15115:9;15111:17;15102:6;15058:71;:::i;:::-;15140:72;15208:2;15197:9;15193:18;15184:6;15140:72;:::i;:::-;15015:207;;;;;:::o;15229:210::-;;15350:2;15339:9;15335:18;15327:26;;15364:65;15426:1;15415:9;15411:17;15402:6;15364:65;:::i;:::-;15321:118;;;;:::o;15446:274::-;;15599:2;15588:9;15584:18;15576:26;;15613:97;15707:1;15696:9;15692:17;15683:6;15613:97;:::i;:::-;15570:150;;;;:::o;15727:310::-;;15874:2;15863:9;15859:18;15851:26;;15924:9;15918:4;15914:20;15910:1;15899:9;15895:17;15888:47;15949:78;16022:4;16013:6;15949:78;:::i;:::-;15941:86;;15845:192;;;;:::o;16044:416::-;;16244:2;16233:9;16229:18;16221:26;;16294:9;16288:4;16284:20;16280:1;16269:9;16265:17;16258:47;16319:131;16445:4;16319:131;:::i;:::-;16311:139;;16215:245;;;:::o;16467:416::-;;16667:2;16656:9;16652:18;16644:26;;16717:9;16711:4;16707:20;16703:1;16692:9;16688:17;16681:47;16742:131;16868:4;16742:131;:::i;:::-;16734:139;;16638:245;;;:::o;16890:416::-;;17090:2;17079:9;17075:18;17067:26;;17140:9;17134:4;17130:20;17126:1;17115:9;17111:17;17104:47;17165:131;17291:4;17165:131;:::i;:::-;17157:139;;17061:245;;;:::o;17313:416::-;;17513:2;17502:9;17498:18;17490:26;;17563:9;17557:4;17553:20;17549:1;17538:9;17534:17;17527:47;17588:131;17714:4;17588:131;:::i;:::-;17580:139;;17484:245;;;:::o;17736:416::-;;17936:2;17925:9;17921:18;17913:26;;17986:9;17980:4;17976:20;17972:1;17961:9;17957:17;17950:47;18011:131;18137:4;18011:131;:::i;:::-;18003:139;;17907:245;;;:::o;18159:416::-;;18359:2;18348:9;18344:18;18336:26;;18409:9;18403:4;18399:20;18395:1;18384:9;18380:17;18373:47;18434:131;18560:4;18434:131;:::i;:::-;18426:139;;18330:245;;;:::o;18582:416::-;;18782:2;18771:9;18767:18;18759:26;;18832:9;18826:4;18822:20;18818:1;18807:9;18803:17;18796:47;18857:131;18983:4;18857:131;:::i;:::-;18849:139;;18753:245;;;:::o;19005:416::-;;19205:2;19194:9;19190:18;19182:26;;19255:9;19249:4;19245:20;19241:1;19230:9;19226:17;19219:47;19280:131;19406:4;19280:131;:::i;:::-;19272:139;;19176:245;;;:::o;19428:416::-;;19628:2;19617:9;19613:18;19605:26;;19678:9;19672:4;19668:20;19664:1;19653:9;19649:17;19642:47;19703:131;19829:4;19703:131;:::i;:::-;19695:139;;19599:245;;;:::o;19851:416::-;;20051:2;20040:9;20036:18;20028:26;;20101:9;20095:4;20091:20;20087:1;20076:9;20072:17;20065:47;20126:131;20252:4;20126:131;:::i;:::-;20118:139;;20022:245;;;:::o;20274:222::-;;20401:2;20390:9;20386:18;20378:26;;20415:71;20483:1;20472:9;20468:17;20459:6;20415:71;:::i;:::-;20372:124;;;;:::o;20503:832::-;;20800:3;20789:9;20785:19;20777:27;;20815:71;20883:1;20872:9;20868:17;20859:6;20815:71;:::i;:::-;20897:80;20973:2;20962:9;20958:18;20949:6;20897:80;:::i;:::-;21025:9;21019:4;21015:20;21010:2;20999:9;20995:18;20988:48;21050:108;21153:4;21144:6;21050:108;:::i;:::-;21042:116;;21169:72;21237:2;21226:9;21222:18;21213:6;21169:72;:::i;:::-;21252:73;21320:3;21309:9;21305:19;21296:6;21252:73;:::i;:::-;20771:564;;;;;;;;:::o;21342:214::-;;21465:2;21454:9;21450:18;21442:26;;21479:67;21543:1;21532:9;21528:17;21519:6;21479:67;:::i;:::-;21436:120;;;;:::o;21563:256::-;;21625:2;21619:9;21609:19;;21663:4;21655:6;21651:17;21762:6;21750:10;21747:22;21726:18;21714:10;21711:34;21708:62;21705:2;;;21783:1;21780;21773:12;21705:2;21803:10;21799:2;21792:22;21603:216;;;;:::o;21826:304::-;;21985:18;21977:6;21974:30;21971:2;;;22017:1;22014;22007:12;21971:2;22052:4;22044:6;22040:17;22032:25;;22115:4;22109;22105:15;22097:23;;21908:222;;;:::o;22137:151::-;;22223:3;22215:11;;22261:4;22256:3;22252:14;22244:22;;22209:79;;;:::o;22295:137::-;;22404:5;22398:12;22388:22;;22369:63;;;:::o;22439:121::-;;22532:5;22526:12;22516:22;;22497:63;;;:::o;22567:122::-;;22661:5;22655:12;22645:22;;22626:63;;;:::o;22696:108::-;;22794:4;22789:3;22785:14;22777:22;;22771:33;;;:::o;22812:178::-;;22942:6;22937:3;22930:19;22979:4;22974:3;22970:14;22955:29;;22923:67;;;;:::o;22999:144::-;;23134:3;23119:18;;23112:31;;;;:::o;23152:163::-;;23267:6;23262:3;23255:19;23304:4;23299:3;23295:14;23280:29;;23248:67;;;;:::o;23323:91::-;;23385:24;23403:5;23385:24;:::i;:::-;23374:35;;23368:46;;;:::o;23421:85::-;;23494:5;23487:13;23480:21;23469:32;;23463:43;;;:::o;23513:109::-;;23586:30;23579:5;23575:42;23564:53;;23558:64;;;:::o;23629:121::-;;23702:42;23695:5;23691:54;23680:65;;23674:76;;;:::o;23757:72::-;;23819:5;23808:16;;23802:27;;;:::o;23836:88::-;;23908:10;23901:5;23897:22;23886:33;;23880:44;;;:::o;23931:81::-;;24002:4;23995:5;23991:16;23980:27;;23974:38;;;:::o;24019:129::-;;24106:37;24137:5;24106:37;:::i;:::-;24093:50;;24087:61;;;:::o;24155:173::-;;24260:63;24317:5;24260:63;:::i;:::-;24247:76;;24241:87;;;:::o;24335:134::-;;24440:24;24458:5;24440:24;:::i;:::-;24427:37;;24421:48;;;:::o;24476:116::-;;24563:24;24581:5;24563:24;:::i;:::-;24550:37;;24544:48;;;:::o;24599:121::-;;24678:37;24709:5;24678:37;:::i;:::-;24665:50;;24659:61;;;:::o;24727:108::-;;24806:24;24824:5;24806:24;:::i;:::-;24793:37;;24787:48;;;:::o;24843:268::-;24908:1;24915:101;24929:6;24926:1;24923:13;24915:101;;;25005:1;25000:3;24996:11;24990:18;24986:1;24981:3;24977:11;24970:39;24951:2;24948:1;24944:10;24939:15;;24915:101;;;25031:6;25028:1;25025:13;25022:2;;;25096:1;25087:6;25082:3;25078:16;25071:27;25022:2;24892:219;;;;:::o;25119:97::-;;25207:2;25203:7;25198:2;25191:5;25187:14;25183:28;25173:38;;25167:49;;;:::o;25224:117::-;25293:24;25311:5;25293:24;:::i;:::-;25286:5;25283:35;25273:2;;25332:1;25329;25322:12;25273:2;25267:74;:::o;25348:111::-;25414:21;25429:5;25414:21;:::i;:::-;25407:5;25404:32;25394:2;;25450:1;25447;25440:12;25394:2;25388:71;:::o;25466:117::-;25535:24;25553:5;25535:24;:::i;:::-;25528:5;25525:35;25515:2;;25574:1;25571;25564:12;25515:2;25509:74;:::o;25590:117::-;25659:24;25677:5;25659:24;:::i;:::-;25652:5;25649:35;25639:2;;25698:1;25695;25688:12;25639:2;25633:74;:::o;25714:115::-;25782:23;25799:5;25782:23;:::i;:::-;25775:5;25772:34;25762:2;;25820:1;25817;25810:12;25762:2;25756:73;:::o

Swarm Source

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