ETH Price: $3,395.22 (-0.21%)
Gas: 23 Gwei

Token

The Little Guy (TLG)
 

Overview

Max Total Supply

1,000,000,000 TLG

Holders

77

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000002 TLG

Value
$0.00
0xc751Fdc5654dbDc039eE16E57dE99A0a000A9A59
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TLG

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-03
*/

// SPDX-License-Identifier: No

pragma solidity = 0.8.19;

//--- Context ---//
abstract contract Context {
    constructor() {
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

//--- Ownable ---//
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

//--- Interface for BEP20 ---//
interface IBEP20 {
    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);
}


contract TLG is Context, IBEP20, Ownable {

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcluded;

    address[] private _excluded;

    bool private swapping;

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 1_000_000_000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 public swapTokensAtAmount = _tTotal / 5_000;

    address public deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public marketingWallet = address(0x94801aB73C67AEBc5d9Bc9cbe9F5cd21d7A1a968);

    string private constant _name = "The Little Guy";
    string private constant _symbol = "TLG";

    event _tradingEnabled();

    bool public isTradingEnabled = false;

    struct Taxes {
        uint256 rfi;
        uint256 marketing;
    }

    Taxes public taxes = Taxes(1, 2);

    struct TotFeesPaidStruct {
        uint256 rfi;
        uint256 marketing;
    }

    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues {
        uint256 rAmount;
        uint256 rTransferAmount;
        uint256 rRfi;
        uint256 rMarketing;
        uint256 tTransferAmount;
        uint256 tRfi;
        uint256 tMarketing;
    }

    modifier lockTheSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    constructor(address routerAddress) {
        IRouter _router = IRouter(routerAddress);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;

        excludeFromReward(pair);
        excludeFromReward(deadWallet);

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[deadWallet] = true;
        emit Transfer(address(0), owner(), _tTotal);
    }

    //std BEP20:
    function name() public pure returns (string memory) {
        return _name;
    }

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

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

    //override BEP20:
    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "BEP20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "BEP20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }


    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi)
        public
        view
        returns (uint256)
    {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns (uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount / currentRate;
    }

    //@dev kept original RFI naming -> "reward" as in reflection
    function excludeFromReward(address account) public onlyOwner {
        require(!_isExcluded[account], "Account is already excluded");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

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

    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -= rRfi;
        totFeesPaid.rfi += tRfi;
    }


    function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
        totFeesPaid.marketing += tMarketing;

        if (_isExcluded[address(this)]) {
            _tOwned[address(this)] += tMarketing;
        }
        _rOwned[address(this)] += rMarketing;
    }


    function _getValues(
        uint256 tAmount,
        bool takeFee
    ) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee);
        (
            to_return.rAmount,
            to_return.rTransferAmount,
            to_return.rRfi,
            to_return.rMarketing
        ) = _getRValues(to_return, tAmount, takeFee, _getRate());

        return to_return;
    }

    function _getTValues(
        uint256 tAmount,
        bool takeFee
    ) private view returns (valuesFromGetValues memory s) {
        if (!takeFee) {
            s.tTransferAmount = tAmount;
            return s;
        }

        s.tRfi = (tAmount * taxes.rfi) / 100;
        s.tMarketing = (tAmount * taxes.marketing) / 100;
        s.tTransferAmount =
            tAmount -
            s.tRfi -
            s.tMarketing;
        return s;
    }

    function _getRValues(
        valuesFromGetValues memory s,
        uint256 tAmount,
        bool takeFee,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rRfi,
            uint256 rMarketing
        )
    {
        rAmount = tAmount * currentRate;

        if (!takeFee) {
            return (rAmount, rAmount, 0, 0);
        }

        rRfi = s.tRfi * currentRate;
        rMarketing = s.tMarketing * currentRate;
        rTransferAmount =
            rAmount -
            rRfi -
            rMarketing;
        return (rAmount, rTransferAmount, rRfi, rMarketing);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply / tSupply;
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply)
                return (_rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function isLimitedAddress(address ins, address out) internal view returns (bool) {

        bool isLimited = ins != owner()
            && out != owner()
            && msg.sender != owner()
            && !_isExcludedFromFee[ins]  && !_isExcludedFromFee[out] && out != address(0) && out != address(this);
            return isLimited;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "BEP20: transfer from the zero address");
        require(to != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(
            amount <= balanceOf(from),
            "You are trying to transfer more than your balance"
        );

        if (isLimitedAddress(from,to)) {
            require(isTradingEnabled,"Trading is not enabled");
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if (
            !swapping &&
            canSwap &&
            from != pair &&
            !_isExcludedFromFee[from] &&
            !_isExcludedFromFee[to]
        ) {
            swapAndLiquify();
        }
        bool takeFee = true;
        if (swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false;

        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        valuesFromGetValues memory s = _getValues(tAmount, takeFee);

        if (_isExcluded[sender]) {
            //from excluded
            _tOwned[sender] = _tOwned[sender] - tAmount;
        }
        if (_isExcluded[recipient]) {
            //to excluded
            _tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount;
        }


            _rOwned[sender] = _rOwned[sender] - s.rAmount;
            _rOwned[recipient] = _rOwned[recipient] + s.rTransferAmount;
            

        if (s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi);
        if (s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing);
        emit Transfer(sender, recipient, s.tTransferAmount);
        
    }

    function swapAndLiquify() private lockTheSwap {
       
        uint256 contractBalance = balanceOf(address(this));
        uint256 amountToSendForSwap = contractBalance * 3 / 4;
        swapTokensForBNB(amountToSendForSwap);

        bool success;
       
        if(address(this).balance > 0) {(success,) = marketingWallet.call{value: address(this).balance, gas: 35000}("");}

        contractBalance = balanceOf(address(this));
        _tokenTransfer(address(this), address(0xdead), contractBalance, false);
    }

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

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

        // make the swap
        try router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        ) {
        }
        catch {
            return;
        }
    }

    function bulkExcludeFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = state;
        }
    }

    function updateWallets(address newMarketingWallet) external onlyOwner {
        require(newMarketingWallet != address(0),"Fee Address cannot be zero address");
        marketingWallet = newMarketingWallet;
    }

    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner {
        require(amount >= _tTotal / 10_000, "Cannot set swap threshold amount less than 0.01% of tokens");
        swapTokensAtAmount = amount;
    }

    function rescueAnyBEP20Tokens(address _tokenAddr,address _to, uint256 _amount) external onlyOwner {
        require(_tokenAddr != address(this), "Owner can't claim contract's balance of its own tokens");
        IBEP20(_tokenAddr).transfer(_to, _amount);
    }

    function enableTrading() external onlyOwner () {
        require(!isTradingEnabled, "Trading already enabled");
        isTradingEnabled = true;

        emit _tradingEnabled();
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","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"},{"anonymous":false,"inputs":[],"name":"_tradingEnabled","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000915565b6200002290633b9aca0062000926565b6009819055620000359060001962000956565b62000043906000196200096d565b600a5561138860095462000058919062000983565b600b55600c80546001600160a01b03191661dead179055600d80546001600160a81b0319167394801ab73c67aebc5d9bc9cbe9f5cd21d7a1a96817905560408051808201909152600180825260026020909201829052600e55600f55348015620000c157600080fd5b5060405162002e2e38038062002e2e833981016040819052620000e4916200099a565b620000ef33620003d6565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015b91906200099a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cf91906200099a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024391906200099a565b600780546001600160a01b0380861661010002610100600160a81b031990921691909117909155600880549183166001600160a01b0319909216821790559091506200028f9062000426565b600c54620002a6906001600160a01b031662000426565b600a5460016000620002c06000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526004918290528220805460ff19166001908117909155916200030f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600d54821681526004909352818320805485166001908117909155600c549091168352912080549092161790556200037d6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620003c591815260200190565b60405180910390a3505050620009f7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620004865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620004f15760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016200047d565b6001600160a01b038116600090815260016020526040902054156200054e576001600160a01b0381166000908152600160205260409020546200053490620005b4565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6000600a548211156200061d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016200047d565b6000620006296200063e565b905062000637818462000983565b9392505050565b600080806200064c62000664565b90925090506200065d818362000983565b9250505090565b600a546009546000918291825b600654811015620007cc57826001600060068481548110620006975762000697620009c5565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620007065750816002600060068481548110620006df57620006df620009c5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200071d57600a54600954945094505050509091565b6001600060068381548110620007375762000737620009c5565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200076890846200096d565b92506002600060068381548110620007845762000784620009c5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007b590836200096d565b915080620007c381620009db565b91505062000671565b50600954600a54620007df919062000983565b821015620007f757600a546009549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008575781600019048211156200083b576200083b62000800565b808516156200084957918102915b93841c93908002906200081b565b509250929050565b60008262000870575060016200090f565b816200087f575060006200090f565b8160018114620008985760028114620008a357620008c3565b60019150506200090f565b60ff841115620008b757620008b762000800565b50506001821b6200090f565b5060208310610133831016604e8410600b8410161715620008e8575081810a6200090f565b620008f4838362000816565b80600019048211156200090b576200090b62000800565b0290505b92915050565b60006200063760ff8416836200085f565b80820281158282048414176200090f576200090f62000800565b634e487b7160e01b600052601260045260246000fd5b60008262000968576200096862000940565b500690565b818103818111156200090f576200090f62000800565b60008262000995576200099562000940565b500490565b600060208284031215620009ad57600080fd5b81516001600160a01b03811681146200063757600080fd5b634e487b7160e01b600052603260045260246000fd5b600060018201620009f057620009f062000800565b5060010190565b6124278062000a076000396000f3fe6080604052600436106102085760003560e01c8063728f8eea11610118578063a457c2d7116100a0578063dd62ed3e1161006f578063dd62ed3e14610650578063e2f4560514610696578063ea2f0b37146106ac578063f2fde38b146106cc578063f887ea40146106ec57600080fd5b8063a457c2d7146105d0578063a8aa1b31146105f0578063a9059cbb14610610578063d257b34f1461063057600080fd5b80638a8c523c116100e75780638a8c523c146105365780638da5cb5b1461054b5780638e2839ff1461056957806395d89b41146105895780639ba5e4d5146105b557600080fd5b8063728f8eea1461047557806375f0a874146104a557806385141a77146104dd57806388f82020146104fd57600080fd5b80633685d4191161019b57806347c230921161016a57806347c23092146103c757806352390c02146103e75780635342acb41461040757806370a0823114610440578063715018a61461046057600080fd5b80633685d419146103475780633950935114610367578063437823ec146103875780634549b039146103a757600080fd5b806323b872dd116101d757806323b872dd146102c95780632851a5cf146102e95780632d8381191461030b578063313ce5671461032b57600080fd5b8063064a59d01461021457806306fdde031461024a578063095ea7b31461028a57806318160ddd146102aa57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b50600d5461023590600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5060408051808201909152600e81526d546865204c6974746c652047757960901b60208201525b6040516102419190611fdd565b34801561029657600080fd5b506102356102a5366004612050565b610711565b3480156102b657600080fd5b506009545b604051908152602001610241565b3480156102d557600080fd5b506102356102e436600461207c565b610728565b3480156102f557600080fd5b506103096103043660046120bd565b6107de565b005b34801561031757600080fd5b506102bb6103263660046120da565b61088b565b34801561033757600080fd5b5060405160098152602001610241565b34801561035357600080fd5b506103096103623660046120bd565b61090f565b34801561037357600080fd5b50610235610382366004612050565b610ac5565b34801561039357600080fd5b506103096103a23660046120bd565b610afc565b3480156103b357600080fd5b506102bb6103c236600461210c565b610b4a565b3480156103d357600080fd5b506103096103e236600461207c565b610bd4565b3480156103f357600080fd5b506103096104023660046120bd565b610cee565b34801561041357600080fd5b506102356104223660046120bd565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561044c57600080fd5b506102bb61045b3660046120bd565b610e41565b34801561046c57600080fd5b50610309610ea0565b34801561048157600080fd5b50600e54600f54610490919082565b60408051928352602083019190915201610241565b3480156104b157600080fd5b50600d546104c5906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b3480156104e957600080fd5b50600c546104c5906001600160a01b031681565b34801561050957600080fd5b506102356105183660046120bd565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561054257600080fd5b50610309610ed6565b34801561055757600080fd5b506000546001600160a01b03166104c5565b34801561057557600080fd5b50610309610584366004612152565b610f98565b34801561059557600080fd5b50604080518082019091526003815262544c4760e81b602082015261027d565b3480156105c157600080fd5b50601054601154610490919082565b3480156105dc57600080fd5b506102356105eb366004612050565b61102e565b3480156105fc57600080fd5b506008546104c5906001600160a01b031681565b34801561061c57600080fd5b5061023561062b366004612050565b6110c9565b34801561063c57600080fd5b5061030961064b3660046120da565b6110d6565b34801561065c57600080fd5b506102bb61066b366004612229565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106a257600080fd5b506102bb600b5481565b3480156106b857600080fd5b506103096106c73660046120bd565b61118a565b3480156106d857600080fd5b506103096106e73660046120bd565b6111d5565b3480156106f857600080fd5b506007546104c59061010090046001600160a01b031681565b600061071e338484611270565b5060015b92915050565b6000610735848484611394565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156107bf5760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107d385336107ce868561226d565b611270565b506001949350505050565b6000546001600160a01b031633146108085760405162461bcd60e51b81526004016107b690612280565b6001600160a01b0381166108695760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016107b6565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000600a548211156108f25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107b6565b60006108fc61168e565b905061090881846122b5565b9392505050565b6000546001600160a01b031633146109395760405162461bcd60e51b81526004016107b690612280565b6001600160a01b03811660009081526005602052604090205460ff166109a15760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016107b6565b60005b600654811015610ac157816001600160a01b0316600682815481106109cb576109cb6122d7565b6000918252602090912001546001600160a01b031603610aaf57600680546109f59060019061226d565b81548110610a0557610a056122d7565b600091825260209091200154600680546001600160a01b039092169183908110610a3157610a316122d7565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610a8957610a896122ed565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610ab981612303565b9150506109a4565b5050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161071e9185906107ce90869061231c565b6000546001600160a01b03163314610b265760405162461bcd60e51b81526004016107b690612280565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600954831115610b9e5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107b6565b81610bba576000610bb08460016116b1565b5191506107229050565b6000610bc78460016116b1565b6020015191506107229050565b6000546001600160a01b03163314610bfe5760405162461bcd60e51b81526004016107b690612280565b306001600160a01b03841603610c755760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016107b6565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce8919061232f565b50505050565b6000546001600160a01b03163314610d185760405162461bcd60e51b81526004016107b690612280565b6001600160a01b03811660009081526005602052604090205460ff1615610d815760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107b6565b6001600160a01b03811660009081526001602052604090205415610ddb576001600160a01b038116600090815260016020526040902054610dc19061088b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff1615610e7e57506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546107229061088b565b6000546001600160a01b03163314610eca5760405162461bcd60e51b81526004016107b690612280565b610ed46000611727565b565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016107b690612280565b600d54600160a01b900460ff1615610f5a5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016107b6565b600d805460ff60a01b1916600160a01b1790556040517ff70959450c791687237d2cfc44f130adeb6f41124d0f5ce5128eb65f7201219590600090a1565b6000546001600160a01b03163314610fc25760405162461bcd60e51b81526004016107b690612280565b60005b8251811015611029578160046000858481518110610fe557610fe56122d7565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061102181612303565b915050610fc5565b505050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156110b05760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107b6565b6110bf33856107ce868561226d565b5060019392505050565b600061071e338484611394565b6000546001600160a01b031633146111005760405162461bcd60e51b81526004016107b690612280565b61271060095461111091906122b5565b8110156111855760405162461bcd60e51b815260206004820152603a60248201527f43616e6e6f74207365742073776170207468726573686f6c6420616d6f756e7460448201527f206c657373207468616e20302e303125206f6620746f6b656e7300000000000060648201526084016107b6565b600b55565b6000546001600160a01b031633146111b45760405162461bcd60e51b81526004016107b690612280565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146111ff5760405162461bcd60e51b81526004016107b690612280565b6001600160a01b0381166112645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107b6565b61126d81611727565b50565b6001600160a01b0383166112d25760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b6565b6001600160a01b0382166113335760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113f85760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b6565b6001600160a01b03821661145a5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b6565b600081116114bc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107b6565b6114c583610e41565b81111561152e5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107b6565b6115388383611777565b1561158f57600d54600160a01b900460ff1661158f5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016107b6565b6000600b5461159d30610e41565b600754911115915060ff161580156115b25750805b80156115cc57506008546001600160a01b03858116911614155b80156115f157506001600160a01b03841660009081526004602052604090205460ff16155b801561161657506001600160a01b03831660009081526004602052604090205460ff16155b156116235761162361184d565b60075460019060ff168061164f57506001600160a01b03851660009081526004602052604090205460ff165b8061167257506001600160a01b03841660009081526004602052604090205460ff165b1561167b575060005b61168785858584611919565b5050505050565b600080600061169b611b15565b90925090506116aa81836122b5565b9250505090565b6116f16040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6116fb8383611c98565b905061171081848461170b61168e565b611d4d565b606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008061178c6000546001600160a01b031690565b6001600160a01b0316846001600160a01b0316141580156117bb57506000546001600160a01b03848116911614155b80156117d257506000546001600160a01b03163314155b80156117f757506001600160a01b03841660009081526004602052604090205460ff16155b801561181c57506001600160a01b03831660009081526004602052604090205460ff16155b801561183057506001600160a01b03831615155b801561184557506001600160a01b0383163014155b949350505050565b6007805460ff19166001179055600061186530610e41565b90506000600461187683600361234c565b61188091906122b5565b905061188b81611db8565b600047156118f057600d546040516001600160a01b03909116906188b89047906000818181858888f193505050503d80600081146118e5576040519150601f19603f3d011682016040523d82523d6000602084013e6118ea565b606091505b50909150505b6118f930610e41565b925061190a3061dead856000611919565b50506007805460ff1916905550565b600061192583836116b1565b6001600160a01b03861660009081526005602052604090205490915060ff1615611987576001600160a01b03851660009081526002602052604090205461196d90849061226d565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff16156119ea5760808101516001600160a01b0385166000908152600260205260409020546119d0919061231c565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b038616600090815260016020526040902054611a0f919061226d565b6001600160a01b0380871660009081526001602090815260408083209490945584015191871681529190912054611a46919061231c565b6001600160a01b0385166000908152600160205260409081902091909155810151151580611a78575060008160a00151115b15611a8f57611a8f81604001518260a00151611f32565b600081606001511180611aa6575060008160c00151115b15611abd57611abd81606001518260c00151611f67565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360800151604051611b0691815260200190565b60405180910390a35050505050565b600a546009546000918291825b600654811015611c6757826001600060068481548110611b4457611b446122d7565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611baf5750816002600060068481548110611b8857611b886122d7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611bc557600a54600954945094505050509091565b6001600060068381548110611bdc57611bdc6122d7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611c0b908461226d565b92506002600060068381548110611c2457611c246122d7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611c53908361226d565b915080611c5f81612303565b915050611b22565b50600954600a54611c7891906122b5565b821015611c8f57600a546009549350935050509091565b90939092509050565b611cd86040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b81611ce95760808101839052610722565b600e54606490611cf9908561234c565b611d0391906122b5565b60a0820152600f54606490611d18908561234c565b611d2291906122b5565b60c0820181905260a0820151611d38908561226d565b611d42919061226d565b608082015292915050565b6000808080611d5c858861234c565b935085611d7157508291506000905080611dad565b848860a00151611d81919061234c565b9150848860c00151611d93919061234c565b905080611da0838661226d565b611daa919061226d565b92505b945094509450949050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ded57611ded6122d7565b60200260200101906001600160a01b031690816001600160a01b031681525050600760019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e849190612363565b81600181518110611e9757611e976122d7565b6001600160a01b039283166020918202929092010152600754611ec291309161010090041684611270565b60075460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790611eff908590600090869030904290600401612380565b600060405180830381600087803b158015611f1957600080fd5b505af1925050508015611f2a575060015b610ac1575050565b81600a6000828254611f44919061226d565b909155505060108054829190600090611f5e90849061231c565b90915550505050565b8060106001016000828254611f7c919061231c565b90915550503060009081526005602052604090205460ff1615611fbe573060009081526002602052604081208054839290611fb890849061231c565b90915550505b3060009081526001602052604081208054849290611f5e90849061231c565b600060208083528351808285015260005b8181101561200a57858101830151858201604001528201611fee565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461126d57600080fd5b803561204b8161202b565b919050565b6000806040838503121561206357600080fd5b823561206e8161202b565b946020939093013593505050565b60008060006060848603121561209157600080fd5b833561209c8161202b565b925060208401356120ac8161202b565b929592945050506040919091013590565b6000602082840312156120cf57600080fd5b81356109088161202b565b6000602082840312156120ec57600080fd5b5035919050565b801515811461126d57600080fd5b803561204b816120f3565b6000806040838503121561211f57600080fd5b823591506020830135612131816120f3565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561216557600080fd5b823567ffffffffffffffff8082111561217d57600080fd5b818501915085601f83011261219157600080fd5b81356020828211156121a5576121a561213c565b8160051b604051601f19603f830116810181811086821117156121ca576121ca61213c565b6040529283528183019350848101820192898411156121e857600080fd5b948201945b8386101561220d576121fe86612040565b855294820194938201936121ed565b965061221c9050878201612101565b9450505050509250929050565b6000806040838503121561223c57600080fd5b82356122478161202b565b915060208301356121318161202b565b634e487b7160e01b600052601160045260246000fd5b8181038181111561072257610722612257565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000826122d257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60006001820161231557612315612257565b5060010190565b8082018082111561072257610722612257565b60006020828403121561234157600080fd5b8151610908816120f3565b808202811582820484141761072257610722612257565b60006020828403121561237557600080fd5b81516109088161202b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123d05784516001600160a01b0316835293830193918301916001016123ab565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202d0a32b0914bb0289bb54df0f6ff7c8901d77c42c15923ffb6549fd32a24c2a864736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102085760003560e01c8063728f8eea11610118578063a457c2d7116100a0578063dd62ed3e1161006f578063dd62ed3e14610650578063e2f4560514610696578063ea2f0b37146106ac578063f2fde38b146106cc578063f887ea40146106ec57600080fd5b8063a457c2d7146105d0578063a8aa1b31146105f0578063a9059cbb14610610578063d257b34f1461063057600080fd5b80638a8c523c116100e75780638a8c523c146105365780638da5cb5b1461054b5780638e2839ff1461056957806395d89b41146105895780639ba5e4d5146105b557600080fd5b8063728f8eea1461047557806375f0a874146104a557806385141a77146104dd57806388f82020146104fd57600080fd5b80633685d4191161019b57806347c230921161016a57806347c23092146103c757806352390c02146103e75780635342acb41461040757806370a0823114610440578063715018a61461046057600080fd5b80633685d419146103475780633950935114610367578063437823ec146103875780634549b039146103a757600080fd5b806323b872dd116101d757806323b872dd146102c95780632851a5cf146102e95780632d8381191461030b578063313ce5671461032b57600080fd5b8063064a59d01461021457806306fdde031461024a578063095ea7b31461028a57806318160ddd146102aa57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b50600d5461023590600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5060408051808201909152600e81526d546865204c6974746c652047757960901b60208201525b6040516102419190611fdd565b34801561029657600080fd5b506102356102a5366004612050565b610711565b3480156102b657600080fd5b506009545b604051908152602001610241565b3480156102d557600080fd5b506102356102e436600461207c565b610728565b3480156102f557600080fd5b506103096103043660046120bd565b6107de565b005b34801561031757600080fd5b506102bb6103263660046120da565b61088b565b34801561033757600080fd5b5060405160098152602001610241565b34801561035357600080fd5b506103096103623660046120bd565b61090f565b34801561037357600080fd5b50610235610382366004612050565b610ac5565b34801561039357600080fd5b506103096103a23660046120bd565b610afc565b3480156103b357600080fd5b506102bb6103c236600461210c565b610b4a565b3480156103d357600080fd5b506103096103e236600461207c565b610bd4565b3480156103f357600080fd5b506103096104023660046120bd565b610cee565b34801561041357600080fd5b506102356104223660046120bd565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561044c57600080fd5b506102bb61045b3660046120bd565b610e41565b34801561046c57600080fd5b50610309610ea0565b34801561048157600080fd5b50600e54600f54610490919082565b60408051928352602083019190915201610241565b3480156104b157600080fd5b50600d546104c5906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b3480156104e957600080fd5b50600c546104c5906001600160a01b031681565b34801561050957600080fd5b506102356105183660046120bd565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561054257600080fd5b50610309610ed6565b34801561055757600080fd5b506000546001600160a01b03166104c5565b34801561057557600080fd5b50610309610584366004612152565b610f98565b34801561059557600080fd5b50604080518082019091526003815262544c4760e81b602082015261027d565b3480156105c157600080fd5b50601054601154610490919082565b3480156105dc57600080fd5b506102356105eb366004612050565b61102e565b3480156105fc57600080fd5b506008546104c5906001600160a01b031681565b34801561061c57600080fd5b5061023561062b366004612050565b6110c9565b34801561063c57600080fd5b5061030961064b3660046120da565b6110d6565b34801561065c57600080fd5b506102bb61066b366004612229565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106a257600080fd5b506102bb600b5481565b3480156106b857600080fd5b506103096106c73660046120bd565b61118a565b3480156106d857600080fd5b506103096106e73660046120bd565b6111d5565b3480156106f857600080fd5b506007546104c59061010090046001600160a01b031681565b600061071e338484611270565b5060015b92915050565b6000610735848484611394565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156107bf5760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107d385336107ce868561226d565b611270565b506001949350505050565b6000546001600160a01b031633146108085760405162461bcd60e51b81526004016107b690612280565b6001600160a01b0381166108695760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016107b6565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000600a548211156108f25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107b6565b60006108fc61168e565b905061090881846122b5565b9392505050565b6000546001600160a01b031633146109395760405162461bcd60e51b81526004016107b690612280565b6001600160a01b03811660009081526005602052604090205460ff166109a15760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016107b6565b60005b600654811015610ac157816001600160a01b0316600682815481106109cb576109cb6122d7565b6000918252602090912001546001600160a01b031603610aaf57600680546109f59060019061226d565b81548110610a0557610a056122d7565b600091825260209091200154600680546001600160a01b039092169183908110610a3157610a316122d7565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610a8957610a896122ed565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610ab981612303565b9150506109a4565b5050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161071e9185906107ce90869061231c565b6000546001600160a01b03163314610b265760405162461bcd60e51b81526004016107b690612280565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600954831115610b9e5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107b6565b81610bba576000610bb08460016116b1565b5191506107229050565b6000610bc78460016116b1565b6020015191506107229050565b6000546001600160a01b03163314610bfe5760405162461bcd60e51b81526004016107b690612280565b306001600160a01b03841603610c755760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016107b6565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce8919061232f565b50505050565b6000546001600160a01b03163314610d185760405162461bcd60e51b81526004016107b690612280565b6001600160a01b03811660009081526005602052604090205460ff1615610d815760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107b6565b6001600160a01b03811660009081526001602052604090205415610ddb576001600160a01b038116600090815260016020526040902054610dc19061088b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff1615610e7e57506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546107229061088b565b6000546001600160a01b03163314610eca5760405162461bcd60e51b81526004016107b690612280565b610ed46000611727565b565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016107b690612280565b600d54600160a01b900460ff1615610f5a5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016107b6565b600d805460ff60a01b1916600160a01b1790556040517ff70959450c791687237d2cfc44f130adeb6f41124d0f5ce5128eb65f7201219590600090a1565b6000546001600160a01b03163314610fc25760405162461bcd60e51b81526004016107b690612280565b60005b8251811015611029578160046000858481518110610fe557610fe56122d7565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061102181612303565b915050610fc5565b505050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156110b05760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107b6565b6110bf33856107ce868561226d565b5060019392505050565b600061071e338484611394565b6000546001600160a01b031633146111005760405162461bcd60e51b81526004016107b690612280565b61271060095461111091906122b5565b8110156111855760405162461bcd60e51b815260206004820152603a60248201527f43616e6e6f74207365742073776170207468726573686f6c6420616d6f756e7460448201527f206c657373207468616e20302e303125206f6620746f6b656e7300000000000060648201526084016107b6565b600b55565b6000546001600160a01b031633146111b45760405162461bcd60e51b81526004016107b690612280565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146111ff5760405162461bcd60e51b81526004016107b690612280565b6001600160a01b0381166112645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107b6565b61126d81611727565b50565b6001600160a01b0383166112d25760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b6565b6001600160a01b0382166113335760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113f85760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b6565b6001600160a01b03821661145a5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b6565b600081116114bc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107b6565b6114c583610e41565b81111561152e5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107b6565b6115388383611777565b1561158f57600d54600160a01b900460ff1661158f5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016107b6565b6000600b5461159d30610e41565b600754911115915060ff161580156115b25750805b80156115cc57506008546001600160a01b03858116911614155b80156115f157506001600160a01b03841660009081526004602052604090205460ff16155b801561161657506001600160a01b03831660009081526004602052604090205460ff16155b156116235761162361184d565b60075460019060ff168061164f57506001600160a01b03851660009081526004602052604090205460ff165b8061167257506001600160a01b03841660009081526004602052604090205460ff165b1561167b575060005b61168785858584611919565b5050505050565b600080600061169b611b15565b90925090506116aa81836122b5565b9250505090565b6116f16040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6116fb8383611c98565b905061171081848461170b61168e565b611d4d565b606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008061178c6000546001600160a01b031690565b6001600160a01b0316846001600160a01b0316141580156117bb57506000546001600160a01b03848116911614155b80156117d257506000546001600160a01b03163314155b80156117f757506001600160a01b03841660009081526004602052604090205460ff16155b801561181c57506001600160a01b03831660009081526004602052604090205460ff16155b801561183057506001600160a01b03831615155b801561184557506001600160a01b0383163014155b949350505050565b6007805460ff19166001179055600061186530610e41565b90506000600461187683600361234c565b61188091906122b5565b905061188b81611db8565b600047156118f057600d546040516001600160a01b03909116906188b89047906000818181858888f193505050503d80600081146118e5576040519150601f19603f3d011682016040523d82523d6000602084013e6118ea565b606091505b50909150505b6118f930610e41565b925061190a3061dead856000611919565b50506007805460ff1916905550565b600061192583836116b1565b6001600160a01b03861660009081526005602052604090205490915060ff1615611987576001600160a01b03851660009081526002602052604090205461196d90849061226d565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff16156119ea5760808101516001600160a01b0385166000908152600260205260409020546119d0919061231c565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b038616600090815260016020526040902054611a0f919061226d565b6001600160a01b0380871660009081526001602090815260408083209490945584015191871681529190912054611a46919061231c565b6001600160a01b0385166000908152600160205260409081902091909155810151151580611a78575060008160a00151115b15611a8f57611a8f81604001518260a00151611f32565b600081606001511180611aa6575060008160c00151115b15611abd57611abd81606001518260c00151611f67565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360800151604051611b0691815260200190565b60405180910390a35050505050565b600a546009546000918291825b600654811015611c6757826001600060068481548110611b4457611b446122d7565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611baf5750816002600060068481548110611b8857611b886122d7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611bc557600a54600954945094505050509091565b6001600060068381548110611bdc57611bdc6122d7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611c0b908461226d565b92506002600060068381548110611c2457611c246122d7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611c53908361226d565b915080611c5f81612303565b915050611b22565b50600954600a54611c7891906122b5565b821015611c8f57600a546009549350935050509091565b90939092509050565b611cd86040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b81611ce95760808101839052610722565b600e54606490611cf9908561234c565b611d0391906122b5565b60a0820152600f54606490611d18908561234c565b611d2291906122b5565b60c0820181905260a0820151611d38908561226d565b611d42919061226d565b608082015292915050565b6000808080611d5c858861234c565b935085611d7157508291506000905080611dad565b848860a00151611d81919061234c565b9150848860c00151611d93919061234c565b905080611da0838661226d565b611daa919061226d565b92505b945094509450949050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ded57611ded6122d7565b60200260200101906001600160a01b031690816001600160a01b031681525050600760019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e849190612363565b81600181518110611e9757611e976122d7565b6001600160a01b039283166020918202929092010152600754611ec291309161010090041684611270565b60075460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790611eff908590600090869030904290600401612380565b600060405180830381600087803b158015611f1957600080fd5b505af1925050508015611f2a575060015b610ac1575050565b81600a6000828254611f44919061226d565b909155505060108054829190600090611f5e90849061231c565b90915550505050565b8060106001016000828254611f7c919061231c565b90915550503060009081526005602052604090205460ff1615611fbe573060009081526002602052604081208054839290611fb890849061231c565b90915550505b3060009081526001602052604081208054849290611f5e90849061231c565b600060208083528351808285015260005b8181101561200a57858101830151858201604001528201611fee565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461126d57600080fd5b803561204b8161202b565b919050565b6000806040838503121561206357600080fd5b823561206e8161202b565b946020939093013593505050565b60008060006060848603121561209157600080fd5b833561209c8161202b565b925060208401356120ac8161202b565b929592945050506040919091013590565b6000602082840312156120cf57600080fd5b81356109088161202b565b6000602082840312156120ec57600080fd5b5035919050565b801515811461126d57600080fd5b803561204b816120f3565b6000806040838503121561211f57600080fd5b823591506020830135612131816120f3565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561216557600080fd5b823567ffffffffffffffff8082111561217d57600080fd5b818501915085601f83011261219157600080fd5b81356020828211156121a5576121a561213c565b8160051b604051601f19603f830116810181811086821117156121ca576121ca61213c565b6040529283528183019350848101820192898411156121e857600080fd5b948201945b8386101561220d576121fe86612040565b855294820194938201936121ed565b965061221c9050878201612101565b9450505050509250929050565b6000806040838503121561223c57600080fd5b82356122478161202b565b915060208301356121318161202b565b634e487b7160e01b600052601160045260246000fd5b8181038181111561072257610722612257565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000826122d257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60006001820161231557612315612257565b5060010190565b8082018082111561072257610722612257565b60006020828403121561234157600080fd5b8151610908816120f3565b808202811582820484141761072257610722612257565b60006020828403121561237557600080fd5b81516109088161202b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123d05784516001600160a01b0316835293830193918301916001016123ab565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202d0a32b0914bb0289bb54df0f6ff7c8901d77c42c15923ffb6549fd32a24c2a864736f6c63430008130033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

2899:14570:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3935:36;;;;;;;;;;-1:-1:-1;3935:36:0;;;;-1:-1:-1;;;3935:36:0;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;3935:36:0;;;;;;;;5215:83;;;;;;;;;;-1:-1:-1;5285:5:0;;;;;;;;;;;;-1:-1:-1;;;5285:5:0;;;;5215:83;;;;;;;:::i;5975:161::-;;;;;;;;;;-1:-1:-1;5975:161:0;;;;;:::i;:::-;;:::i;5515:95::-;;;;;;;;;;-1:-1:-1;5595:7:0;;5515:95;;;1500:25:1;;;1488:2;1473:18;5515:95:0;1354:177:1;6144:448:0;;;;;;;;;;-1:-1:-1;6144:448:0;;;;;:::i;:::-;;:::i;16517:214::-;;;;;;;;;;-1:-1:-1;16517:214:0;;;;;:::i;:::-;;:::i;:::-;;8015:250;;;;;;;;;;-1:-1:-1;8015:250:0;;;;;:::i;:::-;;:::i;5401:83::-;;;;;;;;;;-1:-1:-1;5401:83:0;;3391:1;2576:36:1;;2564:2;2549:18;5401:83:0;2434:184:1;8679:473:0;;;;;;;;;;-1:-1:-1;8679:473:0;;;;;:::i;:::-;;:::i;6600:207::-;;;;;;;;;;-1:-1:-1;6600:207:0;;;;;:::i;:::-;;:::i;9160:111::-;;;;;;;;;;-1:-1:-1;9160:111:0;;;;;:::i;:::-;;:::i;7518:489::-;;;;;;;;;;-1:-1:-1;7518:489:0;;;;;:::i;:::-;;:::i;16970:263::-;;;;;;;;;;-1:-1:-1;16970:263:0;;;;;:::i;:::-;;:::i;8339:332::-;;;;;;;;;;-1:-1:-1;8339:332:0;;;;;:::i;:::-;;:::i;9397:124::-;;;;;;;;;;-1:-1:-1;9397:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;9486:27:0;9462:4;9486:27;;;:18;:27;;;;;;;;;9397:124;5618:198;;;;;;;;;;-1:-1:-1;5618:198:0;;;;;:::i;:::-;;:::i;850:94::-;;;;;;;;;;;;;:::i;4059:32::-;;;;;;;;;;-1:-1:-1;4059:32:0;;;;;;;;;;;;;3367:25:1;;;3423:2;3408:18;;3401:34;;;;3340:18;4059:32:0;3193:248:1;3707:84:0;;;;;;;;;;-1:-1:-1;3707:84:0;;;;-1:-1:-1;;;;;3707:84:0;;;;;;-1:-1:-1;;;;;3610:32:1;;;3592:51;;3580:2;3565:18;3707:84:0;3446:203:1;3630:70:0;;;;;;;;;;-1:-1:-1;3630:70:0;;;;-1:-1:-1;;;;;3630:70:0;;;7388:120;;;;;;;;;;-1:-1:-1;7388:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;7480:20:0;7456:4;7480:20;;;:11;:20;;;;;;;;;7388:120;17241:188;;;;;;;;;;;;;:::i;627:87::-;;;;;;;;;;-1:-1:-1;673:7:0;700:6;-1:-1:-1;;;;;700:6:0;627:87;;16297:212;;;;;;;;;;-1:-1:-1;16297:212:0;;;;;:::i;:::-;;:::i;5306:87::-;;;;;;;;;;-1:-1:-1;5378:7:0;;;;;;;;;;;;-1:-1:-1;;;5378:7:0;;;;5306:87;;4191:36;;;;;;;;;;-1:-1:-1;4191:36:0;;;;;;;;;6815:392;;;;;;;;;;-1:-1:-1;6815:392:0;;;;;:::i;:::-;;:::i;3328:19::-;;;;;;;;;;-1:-1:-1;3328:19:0;;;;-1:-1:-1;;;;;3328:19:0;;;7215:165;;;;;;;;;;-1:-1:-1;7215:165:0;;;;;:::i;:::-;;:::i;16739:223::-;;;;;;;;;;-1:-1:-1;16739:223:0;;;;;:::i;:::-;;:::i;5824:143::-;;;;;;;;;;-1:-1:-1;5824:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5932:18:0;;;5905:7;5932:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5824:143;3570:51;;;;;;;;;;;;;;;;9279:110;;;;;;;;;;-1:-1:-1;9279:110:0;;;;;:::i;:::-;;:::i;952:192::-;;;;;;;;;;-1:-1:-1;952:192:0;;;;;:::i;:::-;;:::i;3300:21::-;;;;;;;;;;-1:-1:-1;3300:21:0;;;;;;;-1:-1:-1;;;;;3300:21:0;;;5975:161;6050:4;6067:39;235:10;6090:7;6099:6;6067:8;:39::i;:::-;-1:-1:-1;6124:4:0;5975:161;;;;;:::o;6144:448::-;6276:4;6293:36;6303:6;6311:9;6322:6;6293:9;:36::i;:::-;-1:-1:-1;;;;;6369:19:0;;6342:24;6369:19;;;:11;:19;;;;;;;;235:10;6369:33;;;;;;;;6421:26;;;;6413:79;;;;-1:-1:-1;;;6413:79:0;;5800:2:1;6413:79:0;;;5782:21:1;5839:2;5819:18;;;5812:30;5878:34;5858:18;;;5851:62;-1:-1:-1;;;5929:18:1;;;5922:38;5977:19;;6413:79:0;;;;;;;;;6503:57;6512:6;235:10;6534:25;6553:6;6534:16;:25;:::i;:::-;6503:8;:57::i;:::-;-1:-1:-1;6580:4:0;;6144:448;-1:-1:-1;;;;6144:448:0:o;16517:214::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16606:32:0;::::1;16598:78;;;::::0;-1:-1:-1;;;16598:78:0;;6835:2:1;16598:78:0::1;::::0;::::1;6817:21:1::0;6874:2;6854:18;;;6847:30;6913:34;6893:18;;;6886:62;-1:-1:-1;;;6964:18:1;;;6957:32;7006:19;;16598:78:0::1;6633:398:1::0;16598:78:0::1;16687:15;:36:::0;;-1:-1:-1;;;;;;16687:36:0::1;-1:-1:-1::0;;;;;16687:36:0;;;::::1;::::0;;;::::1;::::0;;16517:214::o;8015:250::-;8082:7;8121;;8110;:18;;8102:73;;;;-1:-1:-1;;;8102:73:0;;7238:2:1;8102:73:0;;;7220:21:1;7277:2;7257:18;;;7250:30;7316:34;7296:18;;;7289:62;-1:-1:-1;;;7367:18:1;;;7360:40;7417:19;;8102:73:0;7036:406:1;8102:73:0;8186:19;8208:10;:8;:10::i;:::-;8186:32;-1:-1:-1;8236:21:0;8186:32;8236:7;:21;:::i;:::-;8229:28;8015:250;-1:-1:-1;;;8015:250:0:o;8679:473::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8759:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8751:56;;;::::0;-1:-1:-1;;;8751:56:0;;7871:2:1;8751:56:0::1;::::0;::::1;7853:21:1::0;7910:2;7890:18;;;7883:30;7949:25;7929:18;;;7922:53;7992:18;;8751:56:0::1;7669:347:1::0;8751:56:0::1;8823:9;8818:327;8842:9;:16:::0;8838:20;::::1;8818:327;;;8900:7;-1:-1:-1::0;;;;;8884:23:0::1;:9;8894:1;8884:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;8884:12:0::1;:23:::0;8880:254:::1;;8943:9;8953:16:::0;;:20:::1;::::0;8972:1:::1;::::0;8953:20:::1;:::i;:::-;8943:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;8928:9:::1;:12:::0;;-1:-1:-1;;;;;8943:31:0;;::::1;::::0;8938:1;;8928:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;8928:46:0::1;-1:-1:-1::0;;;;;8928:46:0;;::::1;;::::0;;8993:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;9032:11:::1;:20:::0;;;;:28;;-1:-1:-1;;9032:28:0::1;::::0;;9079:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9079:15:0;;;;;-1:-1:-1;;;;;;9079:15:0::1;::::0;;;;;8818:327:::1;8679:473:::0;:::o;8880:254::-:1;8860:3:::0;::::1;::::0;::::1;:::i;:::-;;;;8818:327;;;;8679:473:::0;:::o;6600:207::-;235:10;6680:4;6729:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6729:34:0;;;;;;;;;;6680:4;;6697:80;;6720:7;;6729:47;;6766:10;;6729:47;:::i;9160:111::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9229:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9229:34:0::1;9259:4;9229:34;::::0;;9160:111::o;7518:489::-;7636:7;7680;;7669;:18;;7661:62;;;;-1:-1:-1;;;7661:62:0;;8757:2:1;7661:62:0;;;8739:21:1;8796:2;8776:18;;;8769:30;8835:33;8815:18;;;8808:61;8886:18;;7661:62:0;8555:355:1;7661:62:0;7739:17;7734:266;;7773:28;7804:25;7815:7;7824:4;7804:10;:25::i;:::-;7851:9;;-1:-1:-1;7844:16:0;;-1:-1:-1;7844:16:0;7734:266;7893:28;7924:25;7935:7;7944:4;7924:10;:25::i;:::-;7971:17;;;;-1:-1:-1;7964:24:0;;-1:-1:-1;7964:24:0;16970:263;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;17109:4:::1;-1:-1:-1::0;;;;;17087:27:0;::::1;::::0;17079:94:::1;;;::::0;-1:-1:-1;;;17079:94:0;;9117:2:1;17079:94:0::1;::::0;::::1;9099:21:1::0;9156:2;9136:18;;;9129:30;9195:34;9175:18;;;9168:62;-1:-1:-1;;;9246:18:1;;;9239:52;9308:19;;17079:94:0::1;8915:418:1::0;17079:94:0::1;17184:41;::::0;-1:-1:-1;;;17184:41:0;;-1:-1:-1;;;;;9530:32:1;;;17184:41:0::1;::::0;::::1;9512:51:1::0;9579:18;;;9572:34;;;17184:27:0;::::1;::::0;::::1;::::0;9485:18:1;;17184:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16970:263:::0;;;:::o;8339:332::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8420:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8419:21;8411:61;;;::::0;-1:-1:-1;;;8411:61:0;;10069:2:1;8411:61:0::1;::::0;::::1;10051:21:1::0;10108:2;10088:18;;;10081:30;10147:29;10127:18;;;10120:57;10194:18;;8411:61:0::1;9867:351:1::0;8411:61:0::1;-1:-1:-1::0;;;;;8487:16:0;::::1;8506:1;8487:16:::0;;;:7:::1;:16;::::0;;;;;:20;8483:109:::1;;-1:-1:-1::0;;;;;8563:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;8543:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;8524:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;8483:109:::1;-1:-1:-1::0;;;;;8602:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;8602:27:0::1;8625:4;8602:27:::0;;::::1;::::0;;;8640:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;8640:23:0::1;::::0;;::::1;::::0;;8339:332::o;5618:198::-;-1:-1:-1;;;;;5708:20:0;;5684:7;5708:20;;;:11;:20;;;;;;;;5704:49;;;-1:-1:-1;;;;;;5737:16:0;;;;;:7;:16;;;;;;;5618:198::o;5704:49::-;-1:-1:-1;;;;;5791:16:0;;;;;;:7;:16;;;;;;5771:37;;:19;:37::i;850:94::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;915:21:::1;933:1;915:9;:21::i;:::-;850:94::o:0;17241:188::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;17308:16:::1;::::0;-1:-1:-1;;;17308:16:0;::::1;;;17307:17;17299:53;;;::::0;-1:-1:-1;;;17299:53:0;;10425:2:1;17299:53:0::1;::::0;::::1;10407:21:1::0;10464:2;10444:18;;;10437:30;10503:25;10483:18;;;10476:53;10546:18;;17299:53:0::1;10223:347:1::0;17299:53:0::1;17363:16;:23:::0;;-1:-1:-1;;;;17363:23:0::1;-1:-1:-1::0;;;17363:23:0::1;::::0;;17404:17:::1;::::0;::::1;::::0;17363:23;;17404:17:::1;17241:188::o:0;16297:212::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;16395:9:::1;16390:112;16414:8;:15;16410:1;:19;16390:112;;;16485:5;16451:18;:31;16470:8;16479:1;16470:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16451:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16451:31:0;:39;;-1:-1:-1;;16451:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16431:3;::::1;::::0;::::1;:::i;:::-;;;;16390:112;;;;16297:212:::0;;:::o;6815:392::-;235:10;6918:4;6967:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6967:34:0;;;;;;;;;;7020:35;;;;7012:85;;;;-1:-1:-1;;;7012:85:0;;10777:2:1;7012:85:0;;;10759:21:1;10816:2;10796:18;;;10789:30;10855:34;10835:18;;;10828:62;-1:-1:-1;;;10906:18:1;;;10899:35;10951:19;;7012:85:0;10575:401:1;7012:85:0;7108:67;235:10;7131:7;7140:34;7159:15;7140:16;:34;:::i;7108:67::-;-1:-1:-1;7195:4:0;;6815:392;-1:-1:-1;;;6815:392:0:o;7215:165::-;7293:4;7310:40;7320:10;7332:9;7343:6;7310:9;:40::i;16739:223::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;16847:6:::1;16837:7;;:16;;;;:::i;:::-;16827:6;:26;;16819:97;;;::::0;-1:-1:-1;;;16819:97:0;;11183:2:1;16819:97:0::1;::::0;::::1;11165:21:1::0;11222:2;11202:18;;;11195:30;11261:34;11241:18;;;11234:62;11332:28;11312:18;;;11305:56;11378:19;;16819:97:0::1;10981:422:1::0;16819:97:0::1;16927:18;:27:::0;16739:223::o;9279:110::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9346:27:0::1;9376:5;9346:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9346:35:0::1;::::0;;9279:110::o;952:192::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1041:22:0;::::1;1033:73;;;::::0;-1:-1:-1;;;1033:73:0;;11610:2:1;1033:73:0::1;::::0;::::1;11592:21:1::0;11649:2;11629:18;;;11622:30;11688:34;11668:18;;;11661:62;-1:-1:-1;;;11739:18:1;;;11732:36;11785:19;;1033:73:0::1;11408:402:1::0;1033:73:0::1;1117:19;1127:8;1117:9;:19::i;:::-;952:192:::0;:::o;12343:369::-;-1:-1:-1;;;;;12470:19:0;;12462:68;;;;-1:-1:-1;;;12462:68:0;;12017:2:1;12462:68:0;;;11999:21:1;12056:2;12036:18;;;12029:30;12095:34;12075:18;;;12068:62;-1:-1:-1;;;12146:18:1;;;12139:34;12190:19;;12462:68:0;11815:400:1;12462:68:0;-1:-1:-1;;;;;12549:21:0;;12541:68;;;;-1:-1:-1;;;12541:68:0;;12422:2:1;12541:68:0;;;12404:21:1;12461:2;12441:18;;;12434:30;12500:34;12480:18;;;12473:62;-1:-1:-1;;;12551:18:1;;;12544:32;12593:19;;12541:68:0;12220:398:1;12541:68:0;-1:-1:-1;;;;;12620:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12672:32;;1500:25:1;;;12672:32:0;;1473:18:1;12672:32:0;;;;;;;12343:369;;;:::o;13076:1074::-;-1:-1:-1;;;;;13198:18:0;;13190:68;;;;-1:-1:-1;;;13190:68:0;;12825:2:1;13190:68:0;;;12807:21:1;12864:2;12844:18;;;12837:30;12903:34;12883:18;;;12876:62;-1:-1:-1;;;12954:18:1;;;12947:35;12999:19;;13190:68:0;12623:401:1;13190:68:0;-1:-1:-1;;;;;13277:16:0;;13269:64;;;;-1:-1:-1;;;13269:64:0;;13231:2:1;13269:64:0;;;13213:21:1;13270:2;13250:18;;;13243:30;13309:34;13289:18;;;13282:62;-1:-1:-1;;;13360:18:1;;;13353:33;13403:19;;13269:64:0;13029:399:1;13269:64:0;13361:1;13352:6;:10;13344:64;;;;-1:-1:-1;;;13344:64:0;;13635:2:1;13344:64:0;;;13617:21:1;13674:2;13654:18;;;13647:30;13713:34;13693:18;;;13686:62;-1:-1:-1;;;13764:18:1;;;13757:39;13813:19;;13344:64:0;13433:405:1;13344:64:0;13451:15;13461:4;13451:9;:15::i;:::-;13441:6;:25;;13419:124;;;;-1:-1:-1;;;13419:124:0;;14045:2:1;13419:124:0;;;14027:21:1;14084:2;14064:18;;;14057:30;14123:34;14103:18;;;14096:62;-1:-1:-1;;;14174:18:1;;;14167:47;14231:19;;13419:124:0;13843:413:1;13419:124:0;13560:25;13577:4;13582:2;13560:16;:25::i;:::-;13556:108;;;13610:16;;-1:-1:-1;;;13610:16:0;;;;13602:50;;;;-1:-1:-1;;;13602:50:0;;14463:2:1;13602:50:0;;;14445:21:1;14502:2;14482:18;;;14475:30;-1:-1:-1;;;14521:18:1;;;14514:52;14583:18;;13602:50:0;14261:346:1;13602:50:0;13676:12;13719:18;;13691:24;13709:4;13691:9;:24::i;:::-;13767:8;;13691:46;-1:-1:-1;13691:46:0;;-1:-1:-1;13767:8:0;;13766:9;:33;;;;;13792:7;13766:33;:62;;;;-1:-1:-1;13824:4:0;;-1:-1:-1;;;;;13816:12:0;;;13824:4;;13816:12;;13766:62;:104;;;;-1:-1:-1;;;;;;13846:24:0;;;;;;:18;:24;;;;;;;;13845:25;13766:104;:144;;;;-1:-1:-1;;;;;;13888:22:0;;;;;;:18;:22;;;;;;;;13887:23;13766:144;13748:217;;;13937:16;:14;:16::i;:::-;14009:8;;13990:4;;14009:8;;;:36;;-1:-1:-1;;;;;;14021:24:0;;;;;;:18;:24;;;;;;;;14009:36;:62;;;-1:-1:-1;;;;;;14049:22:0;;;;;;:18;:22;;;;;;;;14009:62;14005:83;;;-1:-1:-1;14083:5:0;14005:83;14101:41;14116:4;14122:2;14126:6;14134:7;14101:14;:41::i;:::-;13179:971;;13076:1074;;;:::o;11602:161::-;11644:7;11665:15;11682;11701:19;:17;:19::i;:::-;11664:56;;-1:-1:-1;11664:56:0;-1:-1:-1;11738:17:0;11664:56;;11738:17;:::i;:::-;11731:24;;;;11602:161;:::o;9954:438::-;10052:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10052:36:0;10113:29;10125:7;10134;10113:11;:29::i;:::-;10101:41;;10303:52;10315:9;10326:7;10335;10344:10;:8;:10::i;:::-;10303:11;:52::i;:::-;10269:20;;;10153:202;10240:14;;;10153:202;10200:25;;;10153:202;;;9954:438;;;;:::o;1152:173::-;1208:16;1227:6;;-1:-1:-1;;;;;1244:17:0;;;-1:-1:-1;;;;;;1244:17:0;;;;;;1277:40;;1227:6;;;;;;;1277:40;;1208:16;1277:40;1197:128;1152:173;:::o;12720:348::-;12795:4;12814:14;12838:7;673;700:6;-1:-1:-1;;;;;700:6:0;;627:87;12838:7;-1:-1:-1;;;;;12831:14:0;:3;-1:-1:-1;;;;;12831:14:0;;;:45;;;;-1:-1:-1;673:7:0;700:6;-1:-1:-1;;;;;12862:14:0;;;700:6;;12862:14;;12831:45;:83;;;;-1:-1:-1;673:7:0;700:6;-1:-1:-1;;;;;700:6:0;12893:10;:21;;12831:83;:124;;;;-1:-1:-1;;;;;;12932:23:0;;;;;;:18;:23;;;;;;;;12931:24;12831:124;:153;;;;-1:-1:-1;;;;;;12961:23:0;;;;;;:18;:23;;;;;;;;12960:24;12831:153;:174;;;;-1:-1:-1;;;;;;12988:17:0;;;;12831:174;:198;;;;-1:-1:-1;;;;;;13009:20:0;;13024:4;13009:20;;12831:198;12814:215;12720:348;-1:-1:-1;;;;12720:348:0:o;15134:528::-;4511:8;:15;;-1:-1:-1;;4511:15:0;4522:4;4511:15;;;:8;15226:24:::1;15244:4;15226:9;:24::i;:::-;15200:50:::0;-1:-1:-1;15261:27:0::1;15313:1;15291:19;15200:50:::0;15309:1:::1;15291:19;:::i;:::-;:23;;;;:::i;:::-;15261:53;;15325:37;15342:19;15325:16;:37::i;:::-;15375:12;15410:21;:25:::0;15407:112:::1;;15451:15;::::0;:66:::1;::::0;-1:-1:-1;;;;;15451:15:0;;::::1;::::0;15507:5:::1;::::0;15479:21:::1;::::0;15451:66:::1;::::0;;;15479:21;15451:15;15507:5;15451:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15438:79:0;;-1:-1:-1;;15407:112:0::1;15549:24;15567:4;15549:9;:24::i;:::-;15531:42;;15584:70;15607:4;15622:6;15631:15;15648:5;15584:14;:70::i;:::-;-1:-1:-1::0;;4549:8:0;:16;;-1:-1:-1;;4549:16:0;;;-1:-1:-1;15134:528:0:o;14231:895::-;14383:28;14414;14425:7;14434;14414:10;:28::i;:::-;-1:-1:-1;;;;;14459:19:0;;;;;;:11;:19;;;;;;14383:59;;-1:-1:-1;14459:19:0;;14455:124;;;-1:-1:-1;;;;;14542:15:0;;;;;;:7;:15;;;;;;:25;;14560:7;;14542:25;:::i;:::-;-1:-1:-1;;;;;14524:15:0;;;;;;:7;:15;;;;;:43;14455:124;-1:-1:-1;;;;;14593:22:0;;;;;;:11;:22;;;;;;;;14589:141;;;14701:17;;;;-1:-1:-1;;;;;14680:18:0;;;;;;:7;:18;;;;;;:38;;14701:17;14680:38;:::i;:::-;-1:-1:-1;;;;;14659:18:0;;;;;;:7;:18;;;;;:59;14589:141;14784:9;;-1:-1:-1;;;;;14766:15:0;;14784:9;14766:15;;;:7;:15;;;;;;:27;;14784:9;14766:27;:::i;:::-;-1:-1:-1;;;;;14748:15:0;;;;;;;:7;:15;;;;;;;;:45;;;;14850:17;;;14829:18;;;;;;;;;;:38;;14850:17;14829:38;:::i;:::-;-1:-1:-1;;;;;14808:18:0;;;;;;:7;:18;;;;;;;:59;;;;14898:6;;;:10;;;:24;;;14921:1;14912;:6;;;:10;14898:24;14894:57;;;14924:27;14936:1;:6;;;14944:1;:6;;;14924:11;:27::i;:::-;14981:1;14966;:12;;;:16;:36;;;;15001:1;14986;:12;;;:16;14966:36;14962:84;;;15004:42;15019:1;:12;;;15033:1;:12;;;15004:14;:42::i;:::-;15079:9;-1:-1:-1;;;;;15062:46:0;15071:6;-1:-1:-1;;;;;15062:46:0;;15090:1;:17;;;15062:46;;;;1500:25:1;;1488:2;1473:18;;1354:177;15062:46:0;;;;;;;;14372:754;14231:895;;;;:::o;11771:564::-;11869:7;;11905;;11822;;;;;11923:300;11947:9;:16;11943:20;;11923:300;;;12013:7;11989;:21;11997:9;12007:1;11997:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11997:12:0;11989:21;;;;;;;;;;;;;:31;;:66;;;12048:7;12024;:21;12032:9;12042:1;12032:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12032:12:0;12024:21;;;;;;;;;;;;;:31;11989:66;11985:114;;;12082:7;;12091;;12074:25;;;;;;;11771:564;;:::o;11985:114::-;12134:7;:21;12142:9;12152:1;12142:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12142:12:0;12134:21;;;;;;;;;;;;;12124:31;;:7;:31;:::i;:::-;12114:41;;12190:7;:21;12198:9;12208:1;12198:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12198:12:0;12190:21;;;;;;;;;;;;;12180:31;;:7;:31;:::i;:::-;12170:41;-1:-1:-1;11965:3:0;;;;:::i;:::-;;;;11923:300;;;;12257:7;;12247;;:17;;;;:::i;:::-;12237:7;:27;12233:58;;;12274:7;;12283;;12266:25;;;;;;11771:564;;:::o;12233:58::-;12310:7;;12319;;-1:-1:-1;11771:564:0;-1:-1:-1;11771:564:0:o;10400:466::-;10499:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10499:28:0;10545:7;10540:91;;10569:17;;;:27;;;10611:8;;10540:91;10663:5;:9;10676:3;;10653:19;;:7;:19;:::i;:::-;10652:27;;;;:::i;:::-;10643:6;;;:36;10716:15;;10735:3;;10706:25;;:7;:25;:::i;:::-;10705:33;;;;:::i;:::-;10690:12;;;:48;;;10805:6;;;;10782:29;;:7;:29;:::i;:::-;:57;;;;:::i;:::-;10749:17;;;:90;10400:466;;;;:::o;10874:720::-;11083:15;;;;11234:21;11244:11;11234:7;:21;:::i;:::-;11224:31;;11273:7;11268:72;;-1:-1:-1;11305:7:0;;-1:-1:-1;11323:1:0;;-1:-1:-1;11323:1:0;11297:31;;11268:72;11368:11;11359:1;:6;;;:20;;;;:::i;:::-;11352:27;;11418:11;11403:1;:12;;;:26;;;;:::i;:::-;11390:39;-1:-1:-1;11390:39:0;11471:27;11494:4;11471:7;:27;:::i;:::-;:53;;;;:::i;:::-;11440:84;;10874:720;;;;;;;;;;:::o;15670:619::-;15812:16;;;15826:1;15812:16;;;;;;;;15788:21;;15812:16;;;;;;;;;;-1:-1:-1;15812:16:0;15788:40;;15857:4;15839;15844:1;15839:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15839:23:0;;;-1:-1:-1;;;;;15839:23:0;;;;;15883:6;;;;;;;;;-1:-1:-1;;;;;15883:6:0;-1:-1:-1;;;;;15883:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15873:4;15878:1;15873:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15873:23:0;;;:7;;;;;;;;;:23;15941:6;;15909:53;;15926:4;;15941:6;;;;15950:11;15909:8;:53::i;:::-;16005:6;;:215;;-1:-1:-1;;;16005:215:0;;:6;;;;-1:-1:-1;;;;;16005:6:0;;:57;;:215;;16077:11;;16103:1;;16147:4;;16174;;16194:15;;16005:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16001:281;;16264:7;15670:619;:::o;9529:125::-;9608:4;9597:7;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;9623:11:0;:23;;9642:4;;9623:11;:15;;:23;;9642:4;;9623:23;:::i;:::-;;;;-1:-1:-1;;;;9529:125:0:o;9664:280::-;9772:10;9747:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;9819:4:0;9799:26;;;;:11;:26;;;;;;;;9795:95;;;9858:4;9842:22;;;;:7;:22;;;;;:36;;9868:10;;9842:22;:36;;9868:10;;9842:36;:::i;:::-;;;;-1:-1:-1;;9795:95:0;9916:4;9900:22;;;;:7;:22;;;;;:36;;9926:10;;9900:22;:36;;9926:10;;9900:36;:::i;206:548:1:-;318:4;347:2;376;365:9;358:21;408:6;402:13;451:6;446:2;435:9;431:18;424:34;476:1;486:140;500:6;497:1;494:13;486:140;;;595:14;;;591:23;;585:30;561:17;;;580:2;557:26;550:66;515:10;;486:140;;;490:3;675:1;670:2;661:6;650:9;646:22;642:31;635:42;745:2;738;734:7;729:2;721:6;717:15;713:29;702:9;698:45;694:54;686:62;;;;206:548;;;;:::o;759:131::-;-1:-1:-1;;;;;834:31:1;;824:42;;814:70;;880:1;877;870:12;895:134;963:20;;992:31;963:20;992:31;:::i;:::-;895:134;;;:::o;1034:315::-;1102:6;1110;1163:2;1151:9;1142:7;1138:23;1134:32;1131:52;;;1179:1;1176;1169:12;1131:52;1218:9;1205:23;1237:31;1262:5;1237:31;:::i;:::-;1287:5;1339:2;1324:18;;;;1311:32;;-1:-1:-1;;;1034:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;1997:247::-;2056:6;2109:2;2097:9;2088:7;2084:23;2080:32;2077:52;;;2125:1;2122;2115:12;2077:52;2164:9;2151:23;2183:31;2208:5;2183:31;:::i;2249:180::-;2308:6;2361:2;2349:9;2340:7;2336:23;2332:32;2329:52;;;2377:1;2374;2367:12;2329:52;-1:-1:-1;2400:23:1;;2249:180;-1:-1:-1;2249:180:1:o;2623:118::-;2709:5;2702:13;2695:21;2688:5;2685:32;2675:60;;2731:1;2728;2721:12;2746:128;2811:20;;2840:28;2811:20;2840:28;:::i;2879:309::-;2944:6;2952;3005:2;2993:9;2984:7;2980:23;2976:32;2973:52;;;3021:1;3018;3011:12;2973:52;3057:9;3044:23;3034:33;;3117:2;3106:9;3102:18;3089:32;3130:28;3152:5;3130:28;:::i;:::-;3177:5;3167:15;;;2879:309;;;;;:::o;3654:127::-;3715:10;3710:3;3706:20;3703:1;3696:31;3746:4;3743:1;3736:15;3770:4;3767:1;3760:15;3786:1191;3876:6;3884;3937:2;3925:9;3916:7;3912:23;3908:32;3905:52;;;3953:1;3950;3943:12;3905:52;3993:9;3980:23;4022:18;4063:2;4055:6;4052:14;4049:34;;;4079:1;4076;4069:12;4049:34;4117:6;4106:9;4102:22;4092:32;;4162:7;4155:4;4151:2;4147:13;4143:27;4133:55;;4184:1;4181;4174:12;4133:55;4220:2;4207:16;4242:4;4265:2;4261;4258:10;4255:36;;;4271:18;;:::i;:::-;4317:2;4314:1;4310:10;4349:2;4343:9;4412:2;4408:7;4403:2;4399;4395:11;4391:25;4383:6;4379:38;4467:6;4455:10;4452:22;4447:2;4435:10;4432:18;4429:46;4426:72;;;4478:18;;:::i;:::-;4514:2;4507:22;4564:18;;;4598:15;;;;-1:-1:-1;4640:11:1;;;4636:20;;;4668:19;;;4665:39;;;4700:1;4697;4690:12;4665:39;4724:11;;;;4744:148;4760:6;4755:3;4752:15;4744:148;;;4826:23;4845:3;4826:23;:::i;:::-;4814:36;;4777:12;;;;4870;;;;4744:148;;;4911:6;-1:-1:-1;4936:35:1;;-1:-1:-1;4952:18:1;;;4936:35;:::i;:::-;4926:45;;;;;;3786:1191;;;;;:::o;4982:388::-;5050:6;5058;5111:2;5099:9;5090:7;5086:23;5082:32;5079:52;;;5127:1;5124;5117:12;5079:52;5166:9;5153:23;5185:31;5210:5;5185:31;:::i;:::-;5235:5;-1:-1:-1;5292:2:1;5277:18;;5264:32;5305:33;5264:32;5305:33;:::i;6007:127::-;6068:10;6063:3;6059:20;6056:1;6049:31;6099:4;6096:1;6089:15;6123:4;6120:1;6113:15;6139:128;6206:9;;;6227:11;;;6224:37;;;6241:18;;:::i;6272:356::-;6474:2;6456:21;;;6493:18;;;6486:30;6552:34;6547:2;6532:18;;6525:62;6619:2;6604:18;;6272:356::o;7447:217::-;7487:1;7513;7503:132;;7557:10;7552:3;7548:20;7545:1;7538:31;7592:4;7589:1;7582:15;7620:4;7617:1;7610:15;7503:132;-1:-1:-1;7649:9:1;;7447:217::o;8021:127::-;8082:10;8077:3;8073:20;8070:1;8063:31;8113:4;8110:1;8103:15;8137:4;8134:1;8127:15;8153:127;8214:10;8209:3;8205:20;8202:1;8195:31;8245:4;8242:1;8235:15;8269:4;8266:1;8259:15;8285:135;8324:3;8345:17;;;8342:43;;8365:18;;:::i;:::-;-1:-1:-1;8412:1:1;8401:13;;8285:135::o;8425:125::-;8490:9;;;8511:10;;;8508:36;;;8524:18;;:::i;9617:245::-;9684:6;9737:2;9725:9;9716:7;9712:23;9708:32;9705:52;;;9753:1;9750;9743:12;9705:52;9785:9;9779:16;9804:28;9826:5;9804:28;:::i;14612:168::-;14685:9;;;14716;;14733:15;;;14727:22;;14713:37;14703:71;;14754:18;;:::i;14995:251::-;15065:6;15118:2;15106:9;15097:7;15093:23;15089:32;15086:52;;;15134:1;15131;15124:12;15086:52;15166:9;15160:16;15185:31;15210:5;15185:31;:::i;15251:980::-;15513:4;15561:3;15550:9;15546:19;15592:6;15581:9;15574:25;15618:2;15656:6;15651:2;15640:9;15636:18;15629:34;15699:3;15694:2;15683:9;15679:18;15672:31;15723:6;15758;15752:13;15789:6;15781;15774:22;15827:3;15816:9;15812:19;15805:26;;15866:2;15858:6;15854:15;15840:29;;15887:1;15897:195;15911:6;15908:1;15905:13;15897:195;;;15976:13;;-1:-1:-1;;;;;15972:39:1;15960:52;;16067:15;;;;16032:12;;;;16008:1;15926:9;15897:195;;;-1:-1:-1;;;;;;;16148:32:1;;;;16143:2;16128:18;;16121:60;-1:-1:-1;;;16212:3:1;16197:19;16190:35;16109:3;15251:980;-1:-1:-1;;;15251:980:1:o

Swarm Source

ipfs://2d0a32b0914bb0289bb54df0f6ff7c8901d77c42c15923ffb6549fd32a24c2a8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.