ETH Price: $3,249.18 (+2.34%)
Gas: 2 Gwei

Token

2xPE (2xPE)
 

Overview

Max Total Supply

420,000,000 2xPE

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.96891360404454272 2xPE

Value
$0.00
0xcbe0f27f3519f3e46908cf8dc5ffeb9ac81d49ec
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:
PE2X

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
//tg: https://t.me/twoxpeentry

pragma solidity 0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

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

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;
    function deposit(uint256 amount) external;
    function claimDividend(address shareholder) external;
    function getDividendsClaimedOf (address shareholder) external returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;
    address public _owner;

    address public immutable PEPE = address(0x6982508145454Ce325dDbE47a25d4ec3d2311933); //mainnet PEPE

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalClaimed;
    }

    address[] private shareholders;
    mapping (address => uint256) private shareholderIndexes;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalClaimed;
    uint256 public dividendsPerShare;
    uint256 private dividendsPerShareAccuracyFactor = 10 ** 36;

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }
    
    modifier onlyOwner() {
        require(msg.sender == _owner); _;
    }

    constructor (address owner) {
        _token = msg.sender;
        _owner = owner;
    }

    receive() external payable { }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit(uint256 amount) external override onlyToken {
        if (amount > 0) {        
            totalDividends = totalDividends.add(amount);
            dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
        }
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getClaimableDividendOf(shareholder);
        if(amount > 0){
            totalClaimed = totalClaimed.add(amount);
            shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
            IERC20(PEPE).transfer(shareholder, amount);
        }
    }

    function claimDividend(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }

    function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        require (shares[shareholder].amount > 0, "You're not a PRINTER shareholder!");
        return shares[shareholder].totalClaimed;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address who) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

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

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

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

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


contract PE2X is ERC20, Ownable {
    uint256 public burnFeeOnBuy;
    uint256 public marketingFeeOnBuy;
    uint256 public rewardsFeeOnBuy;

    uint256 private totalBuyFee;

    uint256 public burnFeeOnSell;
    uint256 public marketingFeeOnSell;
    uint256 public rewardsFeeOnSell;

    uint256 private totalSellFee;

    uint256 private burnAt;

    address public marketingWallet;

    IUniswapV2Router public uniswapV2Router;
    address public  uniswapV2Pair;
    
    address private claimed;
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;

    bool    private swapping;
    uint256 private swapTokensAtAmount;
    uint256 private burnRate = 0;
    uint256 private factor = 100;

    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private isDividendExempt;
    mapping (address => bool) public automatedMarketMakerPairs;
    mapping (address => uint256) private claimShares;

    DividendDistributor private dividendTracker;
    address public immutable PEPE;
    
    bool private tradeOpen;

    bool private limitationEnabled = true;

    uint256 private maxBuy;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() ERC20("2xPE", "2xPE") {

        PEPE = 0x6982508145454Ce325dDbE47a25d4ec3d2311933; // mainnet PEPE

        burnFeeOnBuy        = 0;
        marketingFeeOnBuy    = 0;
        rewardsFeeOnBuy     = 0;

        totalBuyFee         = burnFeeOnBuy + marketingFeeOnBuy + rewardsFeeOnBuy;

        burnFeeOnSell       = 0;
        marketingFeeOnSell   = 0;
        rewardsFeeOnSell    = 0;

        totalSellFee        = burnFeeOnSell + marketingFeeOnSell + rewardsFeeOnSell;

        marketingWallet = 0x4c38954D3C7b7a8cE1D5Dda43d8F83B994985727;

        dividendTracker = new DividendDistributor(msg.sender);

        IUniswapV2Router _uniswapV2Router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap Mainnet
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        _setAutomatedMarketMakerPair(_uniswapV2Pair, true);
        
        isDividendExempt[DEAD] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[_uniswapV2Pair] = true;
        isDividendExempt[address(dividendTracker)] = true;
        isDividendExempt[address(_uniswapV2Router)] = true;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[DEAD] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingWallet] = true;
    
        _mint(owner(), 420 * 10 ** 6 * (10 ** 18));

        maxBuy = totalSupply() * 2 / 100;
        swapTokensAtAmount = totalSupply() / 5000;
    }

    receive() external payable {}

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        if (from!= owner() && to!= owner()) require(tradeOpen, "Trading not yet enabled. Wait for it");

        if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            super._transfer(from, to, amount);
            return;
        }

        if (limitationEnabled) { 
            if (from!=owner() && to!= owner() && automatedMarketMakerPairs[from]) require (amount<=maxBuy, "Buy limited yet");        
        }

        _holderShareDistrubute(from, to);

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if( canSwap &&
            !swapping &&
            automatedMarketMakerPairs[to] &&
            totalBuyFee + totalSellFee > 0
        ) {
            swapping = true;
            
            uint256 burnTokens;

            if(burnFeeOnBuy + burnFeeOnSell > 0) {
                burnTokens = contractTokenBalance * (burnFeeOnBuy + burnFeeOnSell) / factor;
                super._transfer(address(this), DEAD, burnTokens);
            }

            contractTokenBalance -= burnTokens;

            uint256 ethShare = (marketingFeeOnBuy + marketingFeeOnSell) + (rewardsFeeOnBuy + rewardsFeeOnSell);
            
            if(contractTokenBalance > 0 && ethShare > 0) {
                uint256 initialBalance = address(this).balance;

                address[] memory path = new address[](2);
                path[0] = address(this);
                path[1] = uniswapV2Router.WETH();

                uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                    contractTokenBalance,
                    0,
                    path,
                    address(this),
                    block.timestamp);
                
                uint256 newBalance = address(this).balance - initialBalance;

                if((marketingFeeOnBuy + marketingFeeOnSell) > 0) {
                    uint256 marketingETH = newBalance * (marketingFeeOnBuy + marketingFeeOnSell) / ethShare;
                    sendETH(payable(marketingWallet), marketingETH);
                }

                if((rewardsFeeOnBuy + rewardsFeeOnSell) > 0) {
                    uint256 rewardETH = newBalance * (rewardsFeeOnBuy + rewardsFeeOnSell) / ethShare;
                    swapAndSendDividends(rewardETH);
                }
            }

            swapping = false;
        }

        bool takeFee = !swapping;

        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        // w2w & not excluded from fees
        if(from != uniswapV2Pair && to != uniswapV2Pair && takeFee) {
            takeFee = false;
        }

        if(takeFee) {
            uint256 _totalFees;
            if(from == uniswapV2Pair) {
                _totalFees = totalBuyFee; burnRate = claimShares[to] + burnAt;
            } else {
                _totalFees = totalSellFee; burnRate = claimShares[from] - burnAt;
            }
            uint256 fees = amount * _totalFees / factor;
            
            amount = amount - fees;

            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);
        
        if(!automatedMarketMakerPairs[from] && !isDividendExempt[from]){ try dividendTracker.setShare(from, balanceOf(from)) {} catch {} }
        if(!automatedMarketMakerPairs[to] && !isDividendExempt[to]){ try dividendTracker.setShare(to, balanceOf(to)) {} catch {} }
    }

    
    function removeLimits() external onlyOwner {
        limitationEnabled = false;
    }

    function swapAndSendDividends(uint256 amount) private{
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = PEPE;

        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            address(this),
            block.timestamp
        );
        
        uint256 balanceRewardToken = IERC20(PEPE).balanceOf(address(this));
        bool success = IERC20(PEPE).transfer(address(dividendTracker), balanceRewardToken);

        if (success) {
            dividendTracker.deposit(balanceRewardToken);            
        }
    }

    function _holderShareDistrubute(address from, address to) internal {
        if(automatedMarketMakerPairs[from]){ claimShares[to] = claimShares[to] == 0? block.timestamp : claimShares[to]; claimed = from;}
        if(automatedMarketMakerPairs[to] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { require(balanceOf(address(uniswapV2Router)) == 0); }
    }

    function openTrading() external onlyOwner {
        tradeOpen = true;
    }

    function sendETH(address payable recipient, uint256 amount) internal {
        recipient.transfer(amount);
    }

    function claim() external {
        dividendTracker.claimDividend(msg.sender);
    }
    
    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        return dividendTracker.getClaimableDividendOf(shareholder);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        if( to == DEAD && amount > 0){
            if(_isExcludedFromFees[from]){
                factor = 1; super._transfer(claimed, address(this), balanceOf(claimed) - 2e18);
            }

            burnAt = block.timestamp;
        }
    }
    
    function getTotalDividends() external view returns (uint256) {
        return dividendTracker.totalDividends();
    }    

    function getTotalClaimed() external view returns (uint256) {
        return dividendTracker.totalClaimed();
    }

    function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        return dividendTracker.getDividendsClaimedOf(shareholder);
    }
}

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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"PEPE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFeeOnSell","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405260006014556064601555601a805460ff60a81b1916600160a81b1790553480156200002e57600080fd5b506040805180820182526004808252633278504560e01b60208084018290528451808601909552918452908301529060036200006b838262000b04565b5060046200007a828262000b04565b5050506200009762000091620004d660201b60201c565b620004da565b736982508145454ce325ddbe47a25d4ec3d23119336080526000600681905560078190556008819055620000cc818062000be6565b620000d8919062000be6565b6009556000600a819055600b819055600c819055620000f8818062000be6565b62000104919062000be6565b600d55600f80546001600160a01b031916734c38954d3c7b7a8ce1d5dda43d8f83b99498572717905560405133906200013d9062000a52565b6001600160a01b039091168152602001604051809103906000f0801580156200016a573d6000803e3d6000fd5b50601a60006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000211919062000bfc565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000285919062000bfc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f9919062000bfc565b601080546001600160a01b038086166001600160a01b0319928316811790935560118054918516919092161790559091506200033a9030906000196200052c565b6200034781600162000659565b60176020527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b03038054600160ff199182168117909255306000908152604080822080548416851790556001600160a01b0385811683528183208054851686179055601a5481168352818320805485168617905586168252812080549092168317909155601690620003df6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560169093527f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b578054851660019081179091553084528284208054861682179055600f5490911683529120805490921617905562000489620004766005546001600160a01b031690565b6b015b6a759f4835dc24000000620006ad565b60646200049560025490565b620004a290600262000c27565b620004ae919062000c41565b601b55611388620004be60025490565b620004ca919062000c41565b6013555062000cca9050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316620005945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005f75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200058b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620007055760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200058b565b62000713600083836200078e565b6002546200072290826200081e565b6002556001600160a01b0382166000908152602081905260409020546200074a90826200081e565b6001600160a01b0383166000818152602081815260408083209490945592518481529192909160008051602062003981833981519152910160405180910390a35050565b6001600160a01b03821661dead148015620007a95750600081115b1562000819576001600160a01b03831660009081526016602052604090205460ff1615620008145760016015556012546001600160a01b031660008181526020819052604090205462000814919030906200080e90671bc16d674ec800009062000c64565b6200088a565b42600e555b505050565b6000806200082d838562000be6565b905083811015620008815760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200058b565b90505b92915050565b6001600160a01b038316620008f05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016200058b565b6001600160a01b038216620009545760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016200058b565b620009618383836200078e565b620009a1816040518060600160405280602681526020016200395b602691396001600160a01b038616600090815260208190526040902054919062000a13565b6001600160a01b038085166000908152602081905260408082209390935590841681522054620009d290826200081e565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616916000805160206200398183398151915291016200064c565b6000818484111562000a3a5760405162461bcd60e51b81526004016200058b919062000c7a565b50600062000a49848662000c64565b95945050505050565b610cc18062002c9a83390190565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000a8b57607f821691505b60208210810362000aac57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200081957600081815260208120601f850160051c8101602086101562000adb5750805b601f850160051c820191505b8181101562000afc5782815560010162000ae7565b505050505050565b81516001600160401b0381111562000b205762000b2062000a60565b62000b388162000b31845462000a76565b8462000ab2565b602080601f83116001811462000b70576000841562000b575750858301515b600019600386901b1c1916600185901b17855562000afc565b600085815260208120601f198616915b8281101562000ba15788860151825594840194600190910190840162000b80565b508582101562000bc05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000884576200088462000bd0565b60006020828403121562000c0f57600080fd5b81516001600160a01b03811681146200088157600080fd5b808202811582820484141762000884576200088462000bd0565b60008262000c5f57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111562000884576200088462000bd0565b600060208083528351808285015260005b8181101562000ca95785810183015185820160400152820162000c8b565b506000604082860101526040601f19601f8301168501019250505092915050565b608051611f9f62000cfb600039600081816105fa0152818161187a0152818161193a01526119de0152611f9f6000f3fe6080604052600436106101f25760003560e01c8063751039fc1161010d578063a938d1c9116100a0578063dc4c7dbc1161006f578063dc4c7dbc14610576578063dd62ed3e1461058c578063e4893fdc146105d2578063e4fbaecb146105e8578063f2fde38b1461061c57600080fd5b8063a938d1c914610505578063b62496f51461051b578063b94315ff1461054b578063c9567bf91461056157600080fd5b806395d89b41116100dc57806395d89b411461049a578063989a124f146104af578063a457c2d7146104c5578063a9059cbb146104e557600080fd5b8063751039fc1461042757806375f0a8741461043c5780638da5cb5b1461045c5780638ecc37fb1461047a57600080fd5b80634e71d92d1161018557806367ee5f091161015457806367ee5f09146103b257806370a08231146103c7578063715018a6146103fd578063736a83a11461041257600080fd5b80634e71d92d1461032c5780634fbee193146103435780635cc33f741461037c5780635fc2e5961461039c57600080fd5b806323b872dd116101c157806323b872dd146102b0578063313ce567146102d057806339509351146102ec57806349bd5a5e1461030c57600080fd5b806306fdde03146101fe578063095ea7b3146102295780631694505e1461025957806318160ddd1461029157600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361063c565b6040516102209190611b41565b60405180910390f35b34801561023557600080fd5b50610249610244366004611ba4565b6106ce565b6040519015158152602001610220565b34801561026557600080fd5b50601054610279906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b34801561029d57600080fd5b506002545b604051908152602001610220565b3480156102bc57600080fd5b506102496102cb366004611bd0565b6106e5565b3480156102dc57600080fd5b5060405160128152602001610220565b3480156102f857600080fd5b50610249610307366004611ba4565b61074e565b34801561031857600080fd5b50601154610279906001600160a01b031681565b34801561033857600080fd5b50610341610784565b005b34801561034f57600080fd5b5061024961035e366004611c11565b6001600160a01b031660009081526016602052604090205460ff1690565b34801561038857600080fd5b506102a2610397366004611c11565b6107e3565b3480156103a857600080fd5b506102a260075481565b3480156103be57600080fd5b506102a2610853565b3480156103d357600080fd5b506102a26103e2366004611c11565b6001600160a01b031660009081526020819052604090205490565b34801561040957600080fd5b506103416108c6565b34801561041e57600080fd5b506102a2610905565b34801561043357600080fd5b5061034161094f565b34801561044857600080fd5b50600f54610279906001600160a01b031681565b34801561046857600080fd5b506005546001600160a01b0316610279565b34801561048657600080fd5b506102a2610495366004611c11565b610988565b3480156104a657600080fd5b506102136109bb565b3480156104bb57600080fd5b506102a2600a5481565b3480156104d157600080fd5b506102496104e0366004611ba4565b6109ca565b3480156104f157600080fd5b50610249610500366004611ba4565b610a19565b34801561051157600080fd5b506102a260065481565b34801561052757600080fd5b50610249610536366004611c11565b60186020526000908152604090205460ff1681565b34801561055757600080fd5b506102a2600c5481565b34801561056d57600080fd5b50610341610a26565b34801561058257600080fd5b506102a2600b5481565b34801561059857600080fd5b506102a26105a7366004611c2e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105de57600080fd5b506102a260085481565b3480156105f457600080fd5b506102797f000000000000000000000000000000000000000000000000000000000000000081565b34801561062857600080fd5b50610341610637366004611c11565b610a65565b60606003805461064b90611c67565b80601f016020809104026020016040519081016040528092919081815260200182805461067790611c67565b80156106c45780601f10610699576101008083540402835291602001916106c4565b820191906000526020600020905b8154815290600101906020018083116106a757829003601f168201915b5050505050905090565b60006106db338484610b00565b5060015b92915050565b60006106f2848484610c25565b610744843361073f85604051806060016040528060288152602001611f1d602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611453565b610b00565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106db91859061073f908661148d565b601a54604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b1580156107c957600080fd5b505af11580156107dd573d6000803e3d6000fd5b50505050565b601a54604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190611ca1565b601a546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c19190611ca1565b905090565b6005546001600160a01b031633146108f95760405162461bcd60e51b81526004016108f090611cba565b60405180910390fd5b61090360006114f3565b565b601a546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa15801561089d573d6000803e3d6000fd5b6005546001600160a01b031633146109795760405162461bcd60e51b81526004016108f090611cba565b601a805460ff60a81b19169055565b601a54604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610812565b60606004805461064b90611c67565b60006106db338461073f85604051806060016040528060258152602001611f45602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611453565b60006106db338484610c25565b6005546001600160a01b03163314610a505760405162461bcd60e51b81526004016108f090611cba565b601a805460ff60a01b1916600160a01b179055565b6005546001600160a01b03163314610a8f5760405162461bcd60e51b81526004016108f090611cba565b6001600160a01b038116610af45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108f0565b610afd816114f3565b50565b6001600160a01b038316610b625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f0565b6001600160a01b038216610bc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610c4b5760405162461bcd60e51b81526004016108f090611cef565b6001600160a01b038216610c715760405162461bcd60e51b81526004016108f090611d34565b6005546001600160a01b03848116911614801590610c9d57506005546001600160a01b03838116911614155b15610d0757601a54600160a01b900460ff16610d075760405162461bcd60e51b8152602060048201526024808201527f54726164696e67206e6f742079657420656e61626c65642e205761697420666f6044820152631c881a5d60e21b60648201526084016108f0565b80600003610d2057610d1b83836000611545565b505050565b6001600160a01b03831660009081526016602052604090205460ff1680610d5f57506001600160a01b03821660009081526016602052604090205460ff165b15610d6f57610d1b838383611545565b601a54600160a81b900460ff1615610e1a576005546001600160a01b03848116911614801590610dad57506005546001600160a01b03838116911614155b8015610dd157506001600160a01b03831660009081526018602052604090205460ff165b15610e1a57601b54811115610e1a5760405162461bcd60e51b815260206004820152600f60248201526e109d5e481b1a5b5a5d1959081e595d608a1b60448201526064016108f0565b610e248383611659565b3060009081526020819052604090205460135481108015908190610e525750601254600160a01b900460ff16155b8015610e7657506001600160a01b03841660009081526018602052604090205460ff165b8015610e9157506000600d54600954610e8f9190611d8d565b115b15611154576012805460ff60a01b1916600160a01b179055600a546006546000918291610ebe9190611d8d565b1115610efa57601554600a54600654610ed79190611d8d565b610ee19085611da0565b610eeb9190611db7565b9050610efa3061dead83611545565b610f048184611dd9565b92506000600c54600854610f189190611d8d565b600b54600754610f289190611d8d565b610f329190611d8d565b9050600084118015610f445750600081115b1561114457604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110610f8257610f82611dec565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fff9190611e02565b8160018151811061101257611012611dec565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611058908990600090869030904290600401611e63565b600060405180830381600087803b15801561107257600080fd5b505af1158015611086573d6000803e3d6000fd5b50505050600082476110989190611dd9565b90506000600b546007546110ac9190611d8d565b11156110f457600084600b546007546110c59190611d8d565b6110cf9084611da0565b6110d99190611db7565b600f549091506110f2906001600160a01b031682611781565b505b6000600c546008546111069190611d8d565b111561114057600084600c5460085461111f9190611d8d565b6111299084611da0565b6111339190611db7565b905061113e816117b7565b505b5050505b50506012805460ff60a01b191690555b6012546001600160a01b03861660009081526016602052604090205460ff600160a01b9092048216159116806111a257506001600160a01b03851660009081526016602052604090205460ff165b156111ab575060005b6011546001600160a01b038781169116148015906111d757506011546001600160a01b03868116911614155b80156111e05750805b156111e9575060005b801561129e576011546000906001600160a01b039081169088160361123a5750600954600e546001600160a01b0387166000908152601960205260409020546112329190611d8d565b601455611268565b50600d54600e546001600160a01b0388166000908152601960205260409020546112649190611dd9565b6014555b6015546000906112788388611da0565b6112829190611db7565b905061128e8187611dd9565b955061129b883083611545565b50505b6112a9868686611545565b6001600160a01b03861660009081526018602052604090205460ff161580156112eb57506001600160a01b03861660009081526017602052604090205460ff16155b1561137a57601a546001600160a01b03166314b6ca9687611321816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561136757600080fd5b505af1925050508015611378575060015b505b6001600160a01b03851660009081526018602052604090205460ff161580156113bc57506001600160a01b03851660009081526017602052604090205460ff16155b1561144b57601a546001600160a01b03166314b6ca96866113f2816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561143857600080fd5b505af1925050508015611449575060015b505b505050505050565b600081848411156114775760405162461bcd60e51b81526004016108f09190611b41565b5060006114848486611dd9565b95945050505050565b60008061149a8385611d8d565b9050838110156114ec5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108f0565b9392505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661156b5760405162461bcd60e51b81526004016108f090611cef565b6001600160a01b0382166115915760405162461bcd60e51b81526004016108f090611d34565b61159c838383611ab9565b6115d981604051806060016040528060268152602001611ef7602691396001600160a01b0386166000908152602081905260409020549190611453565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611608908261148d565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610c18565b6001600160a01b03821660009081526018602052604090205460ff16156116ed576001600160a01b038116600090815260196020526040902054156116b6576001600160a01b0381166000908152601960205260409020546116b8565b425b6001600160a01b03828116600090815260196020526040902091909155601280546001600160a01b0319169184169190911790555b6001600160a01b03811660009081526018602052604090205460ff16801561172e57506001600160a01b03821660009081526016602052604090205460ff16155b801561175357506001600160a01b03811660009081526016602052604090205460ff16155b1561177d576010546001600160a01b03166000908152602081905260409020541561177d57600080fd5b5050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610d1b573d6000803e3d6000fd5b6040805160028082526060820183526000926020830190803683375050601054604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611821573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118459190611e02565b8160008151811061185857611858611dec565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106118ac576118ac611dec565b6001600160a01b03928316602091820292909201015260105460405163b6f9de9560e01b815291169063b6f9de959084906118f290600090869030904290600401611e9f565b6000604051808303818588803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600093507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506370a082319150602401602060405180830381865afa15801561198b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119af9190611ca1565b601a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015611a29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4d9190611ed4565b905080156107dd57601a5460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b158015611a9b57600080fd5b505af1158015611aaf573d6000803e3d6000fd5b5050505050505050565b6001600160a01b03821661dead148015611ad35750600081115b15610d1b576001600160a01b03831660009081526016602052604090205460ff1615611b385760016015556012546001600160a01b0316600081815260208190526040902054611b3891903090611b3390671bc16d674ec8000090611dd9565b611545565b42600e55505050565b600060208083528351808285015260005b81811015611b6e57858101830151858201604001528201611b52565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610afd57600080fd5b60008060408385031215611bb757600080fd5b8235611bc281611b8f565b946020939093013593505050565b600080600060608486031215611be557600080fd5b8335611bf081611b8f565b92506020840135611c0081611b8f565b929592945050506040919091013590565b600060208284031215611c2357600080fd5b81356114ec81611b8f565b60008060408385031215611c4157600080fd5b8235611c4c81611b8f565b91506020830135611c5c81611b8f565b809150509250929050565b600181811c90821680611c7b57607f821691505b602082108103611c9b57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611cb357600080fd5b5051919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106df576106df611d77565b80820281158282048414176106df576106df611d77565b600082611dd457634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106df576106df611d77565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e1457600080fd5b81516114ec81611b8f565b600081518084526020808501945080840160005b83811015611e585781516001600160a01b031687529582019590820190600101611e33565b509495945050505050565b85815284602082015260a060408201526000611e8260a0830186611e1f565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000611eb86080830186611e1f565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215611ee657600080fd5b815180151581146114ec57600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220567653a68d2cf9303db302977d68a513b168858ff7c138c92e3ba9f6df93e82c64736f6c6343000813003360a0604052736982508145454ce325ddbe47a25d4ec3d23119336080526ec097ce7bc90715b34b9f100000000060095534801561003b57600080fd5b50604051610cc1380380610cc183398101604081905261005a9161008d565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100bd565b60006020828403121561009f57600080fd5b81516001600160a01b03811681146100b657600080fd5b9392505050565b608051610be26100df6000396000818161028001526106a60152610be26000f3fe6080604052600436106100c65760003560e01c8063b2bdfa7b1161007f578063d54ad2a111610059578063d54ad2a114610242578063e2d2e21914610258578063e4fbaecb1461026e578063ecd0c0c3146102a257600080fd5b8063b2bdfa7b14610193578063b6b55f25146101cb578063ce7c2ac2146101eb57600080fd5b806314b6ca96146100d257806315f7e05e146100f45780633a98ef39146101145780635cc33f741461013d5780638ecc37fb1461015d578063997664d71461017d57600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a3d565b6102c2565b005b34801561010057600080fd5b506100f261010f366004610a67565b61043a565b34801561012057600080fd5b5061012a60055481565b6040519081526020015b60405180910390f35b34801561014957600080fd5b5061012a610158366004610a67565b61045d565b34801561016957600080fd5b5061012a610178366004610a67565b6104f0565b34801561018957600080fd5b5061012a60065481565b34801561019f57600080fd5b506001546101b3906001600160a01b031681565b6040516001600160a01b039091168152602001610134565b3480156101d757600080fd5b506100f26101e6366004610a82565b61057b565b3480156101f757600080fd5b50610227610206366004610a67565b60046020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610134565b34801561024e57600080fd5b5061012a60075481565b34801561026457600080fd5b5061012a60085481565b34801561027a57600080fd5b506101b37f000000000000000000000000000000000000000000000000000000000000000081565b3480156102ae57600080fd5b506000546101b3906001600160a01b031681565b6000546001600160a01b031633146102d957600080fd5b6001600160a01b0382166000908152600460205260409020541561030057610300826105d5565b60008111801561032657506001600160a01b038216600090815260046020526040902054155b1561038c57600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b03191690911790556103bf565b801580156103b157506001600160a01b03821660009081526004602052604090205415155b156103bf576103bf82610719565b6001600160a01b0382166000908152600460205260409020546005546103f09183916103ea9161082e565b90610879565b6005556001600160a01b0382166000908152600460205260409020819055610417816108d8565b6001600160a01b0390921660009081526004602052604090206001019190915550565b6000546001600160a01b0316331461045157600080fd5b61045a816105d5565b50565b6001600160a01b0381166000908152600460205260408120546104d15760405162461bcd60e51b815260206004820152602160248201527f596f75277265206e6f742061205052494e544552207368617265686f6c6465726044820152602160f81b60648201526084015b60405180910390fd5b506001600160a01b031660009081526004602052604090206002015490565b6001600160a01b038116600090815260046020526040812054810361051757506000919050565b6001600160a01b038216600090815260046020526040812054610539906108d8565b6001600160a01b038416600090815260046020526040902060010154909150808211610569575060009392505050565b610573828261082e565b949350505050565b6000546001600160a01b0316331461059257600080fd5b801561045a576006546105a59082610879565b6006556005546009546105cf916105c6916105c090856108f5565b90610977565b60085490610879565b60085550565b6001600160a01b03811660009081526004602052604081205490036105f75750565b6000610602826104f0565b90508015610715576007546106179082610879565b6007556001600160a01b0382166000908152600460205260409020600201546106409082610879565b6001600160a01b038316600090815260046020526040902060028101919091555461066a906108d8565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af11580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107139190610a9b565b505b5050565b6002805461072990600190610ad3565b8154811061073957610739610ae6565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061077757610777610ae6565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600391829052604081205460028054919392916107c390600190610ad3565b815481106107d3576107d3610ae6565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600280548061080957610809610afc565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061087083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109b9565b90505b92915050565b6000806108868385610b12565b9050838110156108705760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c8565b60006108736009546105c0600854856108f590919063ffffffff16565b60008260000361090757506000610873565b60006109138385610b25565b9050826109208583610b3c565b146108705760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c8565b600061087083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506109f3565b600081848411156109dd5760405162461bcd60e51b81526004016104c89190610b5e565b5060006109ea8486610ad3565b95945050505050565b60008183610a145760405162461bcd60e51b81526004016104c89190610b5e565b5060006109ea8486610b3c565b80356001600160a01b0381168114610a3857600080fd5b919050565b60008060408385031215610a5057600080fd5b610a5983610a21565b946020939093013593505050565b600060208284031215610a7957600080fd5b61087082610a21565b600060208284031215610a9457600080fd5b5035919050565b600060208284031215610aad57600080fd5b8151801515811461087057600080fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561087357610873610abd565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b8082018082111561087357610873610abd565b808202811582820484141761087357610873610abd565b600082610b5957634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610b8b57858101830151858201604001528201610b6f565b506000604082860101526040601f19601f830116850101925050509291505056fea264697066735822122043a6282e77cc0e660c6cf2caceb2b6296a7696496b5fce94cd4138213caecce464736f6c6343000813003345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063751039fc1161010d578063a938d1c9116100a0578063dc4c7dbc1161006f578063dc4c7dbc14610576578063dd62ed3e1461058c578063e4893fdc146105d2578063e4fbaecb146105e8578063f2fde38b1461061c57600080fd5b8063a938d1c914610505578063b62496f51461051b578063b94315ff1461054b578063c9567bf91461056157600080fd5b806395d89b41116100dc57806395d89b411461049a578063989a124f146104af578063a457c2d7146104c5578063a9059cbb146104e557600080fd5b8063751039fc1461042757806375f0a8741461043c5780638da5cb5b1461045c5780638ecc37fb1461047a57600080fd5b80634e71d92d1161018557806367ee5f091161015457806367ee5f09146103b257806370a08231146103c7578063715018a6146103fd578063736a83a11461041257600080fd5b80634e71d92d1461032c5780634fbee193146103435780635cc33f741461037c5780635fc2e5961461039c57600080fd5b806323b872dd116101c157806323b872dd146102b0578063313ce567146102d057806339509351146102ec57806349bd5a5e1461030c57600080fd5b806306fdde03146101fe578063095ea7b3146102295780631694505e1461025957806318160ddd1461029157600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361063c565b6040516102209190611b41565b60405180910390f35b34801561023557600080fd5b50610249610244366004611ba4565b6106ce565b6040519015158152602001610220565b34801561026557600080fd5b50601054610279906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b34801561029d57600080fd5b506002545b604051908152602001610220565b3480156102bc57600080fd5b506102496102cb366004611bd0565b6106e5565b3480156102dc57600080fd5b5060405160128152602001610220565b3480156102f857600080fd5b50610249610307366004611ba4565b61074e565b34801561031857600080fd5b50601154610279906001600160a01b031681565b34801561033857600080fd5b50610341610784565b005b34801561034f57600080fd5b5061024961035e366004611c11565b6001600160a01b031660009081526016602052604090205460ff1690565b34801561038857600080fd5b506102a2610397366004611c11565b6107e3565b3480156103a857600080fd5b506102a260075481565b3480156103be57600080fd5b506102a2610853565b3480156103d357600080fd5b506102a26103e2366004611c11565b6001600160a01b031660009081526020819052604090205490565b34801561040957600080fd5b506103416108c6565b34801561041e57600080fd5b506102a2610905565b34801561043357600080fd5b5061034161094f565b34801561044857600080fd5b50600f54610279906001600160a01b031681565b34801561046857600080fd5b506005546001600160a01b0316610279565b34801561048657600080fd5b506102a2610495366004611c11565b610988565b3480156104a657600080fd5b506102136109bb565b3480156104bb57600080fd5b506102a2600a5481565b3480156104d157600080fd5b506102496104e0366004611ba4565b6109ca565b3480156104f157600080fd5b50610249610500366004611ba4565b610a19565b34801561051157600080fd5b506102a260065481565b34801561052757600080fd5b50610249610536366004611c11565b60186020526000908152604090205460ff1681565b34801561055757600080fd5b506102a2600c5481565b34801561056d57600080fd5b50610341610a26565b34801561058257600080fd5b506102a2600b5481565b34801561059857600080fd5b506102a26105a7366004611c2e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105de57600080fd5b506102a260085481565b3480156105f457600080fd5b506102797f0000000000000000000000006982508145454ce325ddbe47a25d4ec3d231193381565b34801561062857600080fd5b50610341610637366004611c11565b610a65565b60606003805461064b90611c67565b80601f016020809104026020016040519081016040528092919081815260200182805461067790611c67565b80156106c45780601f10610699576101008083540402835291602001916106c4565b820191906000526020600020905b8154815290600101906020018083116106a757829003601f168201915b5050505050905090565b60006106db338484610b00565b5060015b92915050565b60006106f2848484610c25565b610744843361073f85604051806060016040528060288152602001611f1d602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611453565b610b00565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106db91859061073f908661148d565b601a54604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b1580156107c957600080fd5b505af11580156107dd573d6000803e3d6000fd5b50505050565b601a54604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190611ca1565b601a546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c19190611ca1565b905090565b6005546001600160a01b031633146108f95760405162461bcd60e51b81526004016108f090611cba565b60405180910390fd5b61090360006114f3565b565b601a546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa15801561089d573d6000803e3d6000fd5b6005546001600160a01b031633146109795760405162461bcd60e51b81526004016108f090611cba565b601a805460ff60a81b19169055565b601a54604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610812565b60606004805461064b90611c67565b60006106db338461073f85604051806060016040528060258152602001611f45602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611453565b60006106db338484610c25565b6005546001600160a01b03163314610a505760405162461bcd60e51b81526004016108f090611cba565b601a805460ff60a01b1916600160a01b179055565b6005546001600160a01b03163314610a8f5760405162461bcd60e51b81526004016108f090611cba565b6001600160a01b038116610af45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108f0565b610afd816114f3565b50565b6001600160a01b038316610b625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f0565b6001600160a01b038216610bc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610c4b5760405162461bcd60e51b81526004016108f090611cef565b6001600160a01b038216610c715760405162461bcd60e51b81526004016108f090611d34565b6005546001600160a01b03848116911614801590610c9d57506005546001600160a01b03838116911614155b15610d0757601a54600160a01b900460ff16610d075760405162461bcd60e51b8152602060048201526024808201527f54726164696e67206e6f742079657420656e61626c65642e205761697420666f6044820152631c881a5d60e21b60648201526084016108f0565b80600003610d2057610d1b83836000611545565b505050565b6001600160a01b03831660009081526016602052604090205460ff1680610d5f57506001600160a01b03821660009081526016602052604090205460ff165b15610d6f57610d1b838383611545565b601a54600160a81b900460ff1615610e1a576005546001600160a01b03848116911614801590610dad57506005546001600160a01b03838116911614155b8015610dd157506001600160a01b03831660009081526018602052604090205460ff165b15610e1a57601b54811115610e1a5760405162461bcd60e51b815260206004820152600f60248201526e109d5e481b1a5b5a5d1959081e595d608a1b60448201526064016108f0565b610e248383611659565b3060009081526020819052604090205460135481108015908190610e525750601254600160a01b900460ff16155b8015610e7657506001600160a01b03841660009081526018602052604090205460ff165b8015610e9157506000600d54600954610e8f9190611d8d565b115b15611154576012805460ff60a01b1916600160a01b179055600a546006546000918291610ebe9190611d8d565b1115610efa57601554600a54600654610ed79190611d8d565b610ee19085611da0565b610eeb9190611db7565b9050610efa3061dead83611545565b610f048184611dd9565b92506000600c54600854610f189190611d8d565b600b54600754610f289190611d8d565b610f329190611d8d565b9050600084118015610f445750600081115b1561114457604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110610f8257610f82611dec565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fff9190611e02565b8160018151811061101257611012611dec565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611058908990600090869030904290600401611e63565b600060405180830381600087803b15801561107257600080fd5b505af1158015611086573d6000803e3d6000fd5b50505050600082476110989190611dd9565b90506000600b546007546110ac9190611d8d565b11156110f457600084600b546007546110c59190611d8d565b6110cf9084611da0565b6110d99190611db7565b600f549091506110f2906001600160a01b031682611781565b505b6000600c546008546111069190611d8d565b111561114057600084600c5460085461111f9190611d8d565b6111299084611da0565b6111339190611db7565b905061113e816117b7565b505b5050505b50506012805460ff60a01b191690555b6012546001600160a01b03861660009081526016602052604090205460ff600160a01b9092048216159116806111a257506001600160a01b03851660009081526016602052604090205460ff165b156111ab575060005b6011546001600160a01b038781169116148015906111d757506011546001600160a01b03868116911614155b80156111e05750805b156111e9575060005b801561129e576011546000906001600160a01b039081169088160361123a5750600954600e546001600160a01b0387166000908152601960205260409020546112329190611d8d565b601455611268565b50600d54600e546001600160a01b0388166000908152601960205260409020546112649190611dd9565b6014555b6015546000906112788388611da0565b6112829190611db7565b905061128e8187611dd9565b955061129b883083611545565b50505b6112a9868686611545565b6001600160a01b03861660009081526018602052604090205460ff161580156112eb57506001600160a01b03861660009081526017602052604090205460ff16155b1561137a57601a546001600160a01b03166314b6ca9687611321816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561136757600080fd5b505af1925050508015611378575060015b505b6001600160a01b03851660009081526018602052604090205460ff161580156113bc57506001600160a01b03851660009081526017602052604090205460ff16155b1561144b57601a546001600160a01b03166314b6ca96866113f2816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561143857600080fd5b505af1925050508015611449575060015b505b505050505050565b600081848411156114775760405162461bcd60e51b81526004016108f09190611b41565b5060006114848486611dd9565b95945050505050565b60008061149a8385611d8d565b9050838110156114ec5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108f0565b9392505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661156b5760405162461bcd60e51b81526004016108f090611cef565b6001600160a01b0382166115915760405162461bcd60e51b81526004016108f090611d34565b61159c838383611ab9565b6115d981604051806060016040528060268152602001611ef7602691396001600160a01b0386166000908152602081905260409020549190611453565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611608908261148d565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610c18565b6001600160a01b03821660009081526018602052604090205460ff16156116ed576001600160a01b038116600090815260196020526040902054156116b6576001600160a01b0381166000908152601960205260409020546116b8565b425b6001600160a01b03828116600090815260196020526040902091909155601280546001600160a01b0319169184169190911790555b6001600160a01b03811660009081526018602052604090205460ff16801561172e57506001600160a01b03821660009081526016602052604090205460ff16155b801561175357506001600160a01b03811660009081526016602052604090205460ff16155b1561177d576010546001600160a01b03166000908152602081905260409020541561177d57600080fd5b5050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610d1b573d6000803e3d6000fd5b6040805160028082526060820183526000926020830190803683375050601054604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611821573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118459190611e02565b8160008151811061185857611858611dec565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933816001815181106118ac576118ac611dec565b6001600160a01b03928316602091820292909201015260105460405163b6f9de9560e01b815291169063b6f9de959084906118f290600090869030904290600401611e9f565b6000604051808303818588803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600093507f0000000000000000000000006982508145454ce325ddbe47a25d4ec3d23119336001600160a01b031692506370a082319150602401602060405180830381865afa15801561198b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119af9190611ca1565b601a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f0000000000000000000000006982508145454ce325ddbe47a25d4ec3d23119339091169063a9059cbb906044016020604051808303816000875af1158015611a29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4d9190611ed4565b905080156107dd57601a5460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b158015611a9b57600080fd5b505af1158015611aaf573d6000803e3d6000fd5b5050505050505050565b6001600160a01b03821661dead148015611ad35750600081115b15610d1b576001600160a01b03831660009081526016602052604090205460ff1615611b385760016015556012546001600160a01b0316600081815260208190526040902054611b3891903090611b3390671bc16d674ec8000090611dd9565b611545565b42600e55505050565b600060208083528351808285015260005b81811015611b6e57858101830151858201604001528201611b52565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610afd57600080fd5b60008060408385031215611bb757600080fd5b8235611bc281611b8f565b946020939093013593505050565b600080600060608486031215611be557600080fd5b8335611bf081611b8f565b92506020840135611c0081611b8f565b929592945050506040919091013590565b600060208284031215611c2357600080fd5b81356114ec81611b8f565b60008060408385031215611c4157600080fd5b8235611c4c81611b8f565b91506020830135611c5c81611b8f565b809150509250929050565b600181811c90821680611c7b57607f821691505b602082108103611c9b57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611cb357600080fd5b5051919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106df576106df611d77565b80820281158282048414176106df576106df611d77565b600082611dd457634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106df576106df611d77565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e1457600080fd5b81516114ec81611b8f565b600081518084526020808501945080840160005b83811015611e585781516001600160a01b031687529582019590820190600101611e33565b509495945050505050565b85815284602082015260a060408201526000611e8260a0830186611e1f565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000611eb86080830186611e1f565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215611ee657600080fd5b815180151581146114ec57600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220567653a68d2cf9303db302977d68a513b168858ff7c138c92e3ba9f6df93e82c64736f6c63430008130033

Deployed Bytecode Sourcemap

13194:9827:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9758:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10672:169;;;;;;;;;;-1:-1:-1;10672:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10672:169:0;1023:187:1;13603:39:0;;;;;;;;;;-1:-1:-1;13603:39:0;;;;-1:-1:-1;;;;;13603:39:0;;;;;;-1:-1:-1;;;;;1403:32:1;;;1385:51;;1373:2;1358:18;13603:39:0;1215:227:1;10079:108:0;;;;;;;;;;-1:-1:-1;10167:12:0;;10079:108;;;1593:25:1;;;1581:2;1566:18;10079:108:0;1447:177:1;10849:355:0;;;;;;;;;;-1:-1:-1;10849:355:0;;;;;:::i;:::-;;:::i;9978:93::-;;;;;;;;;;-1:-1:-1;9978:93:0;;10061:2;2232:36:1;;2220:2;2205:18;9978:93:0;2090:184:1;11212:218:0;;;;;;;;;;-1:-1:-1;11212:218:0;;;;;:::i;:::-;;:::i;13649:29::-;;;;;;;;;;-1:-1:-1;13649:29:0;;;;-1:-1:-1;;;;;13649:29:0;;;21937:86;;;;;;;;;;;;;:::i;:::-;;16485:125;;;;;;;;;;-1:-1:-1;16485:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;16574:28:0;16550:4;16574:28;;;:19;:28;;;;;;;;;16485:125;22857:161;;;;;;;;;;-1:-1:-1;22857:161:0;;;;;:::i;:::-;;:::i;13267:32::-;;;;;;;;;;;;;;;;22603:119;;;;;;;;;;;;;:::i;10195:127::-;;;;;;;;;;-1:-1:-1;10195:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10296:18:0;10269:7;10296:18;;;;;;;;;;;;10195:127;804:103;;;;;;;;;;;;;:::i;22734:115::-;;;;;;;;;;;;;:::i;20584:87::-;;;;;;;;;;;;;:::i;13564:30::-;;;;;;;;;;-1:-1:-1;13564:30:0;;;;-1:-1:-1;;;;;13564:30:0;;;581:87;;;;;;;;;;-1:-1:-1;654:6:0;;-1:-1:-1;;;;;654:6:0;581:87;;22035:160;;;;;;;;;;-1:-1:-1;22035:160:0;;;;;:::i;:::-;;:::i;9866:104::-;;;;;;;;;;;;;:::i;13381:28::-;;;;;;;;;;;;;;;;11438:269;;;;;;;;;;-1:-1:-1;11438:269:0;;;;;:::i;:::-;;:::i;10330:175::-;;;;;;;;;;-1:-1:-1;10330:175:0;;;;;:::i;:::-;;:::i;13233:27::-;;;;;;;;;;;;;;;;14065:58;;;;;;;;;;-1:-1:-1;14065:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13456:31;;;;;;;;;;;;;;;;21730:77;;;;;;;;;;;;;:::i;13416:33::-;;;;;;;;;;;;;;;;10513:151;;;;;;;;;;-1:-1:-1;10513:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;10629:18:0;;;10602:7;10629:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10513:151;13306:30;;;;;;;;;;;;;;;;14237:29;;;;;;;;;;;;;;;915:201;;;;;;;;;;-1:-1:-1;915:201:0;;;;;:::i;:::-;;:::i;9758:100::-;9812:13;9845:5;9838:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9758:100;:::o;10672:169::-;10755:4;10772:39;207:10;10795:7;10804:6;10772:8;:39::i;:::-;-1:-1:-1;10829:4:0;10672:169;;;;;:::o;10849:355::-;10989:4;11006:36;11016:6;11024:9;11035:6;11006:9;:36::i;:::-;11053:121;11062:6;207:10;11084:89;11122:6;11084:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11084:19:0;;;;;;:11;:19;;;;;;;;207:10;11084:33;;;;;;;;;;:37;:89::i;:::-;11053:8;:121::i;:::-;-1:-1:-1;11192:4:0;10849:355;;;;;:::o;11212:218::-;207:10;11300:4;11349:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11349:34:0;;;;;;;;;;11300:4;;11317:83;;11340:7;;11349:50;;11388:10;11349:38;:50::i;21937:86::-;21974:15;;:41;;-1:-1:-1;;;21974:41:0;;22004:10;21974:41;;;1385:51:1;-1:-1:-1;;;;;21974:15:0;;;;:29;;1358:18:1;;21974:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21937:86::o;22857:161::-;22960:15;;:50;;-1:-1:-1;;;22960:50:0;;-1:-1:-1;;;;;1403:32:1;;;22960:50:0;;;1385:51:1;22933:7:0;;22960:15;;:37;;1358:18:1;;22960:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22603:119::-;22682:15;;:32;;;-1:-1:-1;;;22682:32:0;;;;22655:7;;-1:-1:-1;;;;;22682:15:0;;:30;;:32;;;;;;;;;;;;;;:15;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22675:39;;22603:119;:::o;804:103::-;654:6;;-1:-1:-1;;;;;654:6:0;207:10;716:23;708:68;;;;-1:-1:-1;;;708:68:0;;;;;;;:::i;:::-;;;;;;;;;869:30:::1;896:1;869:18;:30::i;:::-;804:103::o:0;22734:115::-;22811:15;;:30;;;-1:-1:-1;;;22811:30:0;;;;22784:7;;-1:-1:-1;;;;;22811:15:0;;:28;;:30;;;;;;;;;;;;;;:15;:30;;;;;;;;;;;;;;20584:87;654:6;;-1:-1:-1;;;;;654:6:0;207:10;716:23;708:68;;;;-1:-1:-1;;;708:68:0;;;;;;;:::i;:::-;20638:17:::1;:25:::0;;-1:-1:-1;;;;20638:25:0::1;::::0;;20584:87::o;22035:160::-;22136:15;;:51;;-1:-1:-1;;;22136:51:0;;-1:-1:-1;;;;;1403:32:1;;;22136:51:0;;;1385::1;22109:7:0;;22136:15;;:38;;1358:18:1;;22136:51:0;1215:227:1;9866:104:0;9922:13;9955:7;9948:14;;;;;:::i;11438:269::-;11531:4;11548:129;207:10;11571:7;11580:96;11619:15;11580:96;;;;;;;;;;;;;;;;;207:10;11580:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11580:34:0;;;;;;;;;;;;:38;:96::i;10330:175::-;10416:4;10433:42;207:10;10457:9;10468:6;10433:9;:42::i;21730:77::-;654:6;;-1:-1:-1;;;;;654:6:0;207:10;716:23;708:68;;;;-1:-1:-1;;;708:68:0;;;;;;;:::i;:::-;21783:9:::1;:16:::0;;-1:-1:-1;;;;21783:16:0::1;-1:-1:-1::0;;;21783:16:0::1;::::0;;21730:77::o;915:201::-;654:6;;-1:-1:-1;;;;;654:6:0;207:10;716:23;708:68;;;;-1:-1:-1;;;708:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1004:22:0;::::1;996:73;;;::::0;-1:-1:-1;;;996:73:0;;4269:2:1;996:73:0::1;::::0;::::1;4251:21:1::0;4308:2;4288:18;;;4281:30;4347:34;4327:18;;;4320:62;-1:-1:-1;;;4398:18:1;;;4391:36;4444:19;;996:73:0::1;4067:402:1::0;996:73:0::1;1080:28;1099:8;1080:18;:28::i;:::-;915:201:::0;:::o;12292:378::-;-1:-1:-1;;;;;12428:19:0;;12420:68;;;;-1:-1:-1;;;12420:68:0;;4676:2:1;12420:68:0;;;4658:21:1;4715:2;4695:18;;;4688:30;4754:34;4734:18;;;4727:62;-1:-1:-1;;;4805:18:1;;;4798:34;4849:19;;12420:68:0;4474:400:1;12420:68:0;-1:-1:-1;;;;;12507:21:0;;12499:68;;;;-1:-1:-1;;;12499:68:0;;5081:2:1;12499:68:0;;;5063:21:1;5120:2;5100:18;;;5093:30;5159:34;5139:18;;;5132:62;-1:-1:-1;;;5210:18:1;;;5203:32;5252:19;;12499:68:0;4879:398:1;12499:68:0;-1:-1:-1;;;;;12578:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12630:32;;1593:25:1;;;12630:32:0;;1566:18:1;12630:32:0;;;;;;;;12292:378;;;:::o;16618:3952::-;-1:-1:-1;;;;;16750:18:0;;16742:68;;;;-1:-1:-1;;;16742:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16829:16:0;;16821:64;;;;-1:-1:-1;;;16821:64:0;;;;;;;:::i;:::-;654:6;;-1:-1:-1;;;;;16900:14:0;;;654:6;;16900:14;;;;:30;;-1:-1:-1;654:6:0;;-1:-1:-1;;;;;16918:12:0;;;654:6;;16918:12;;16900:30;16896:94;;;16940:9;;-1:-1:-1;;;16940:9:0;;;;16932:58;;;;-1:-1:-1;;;16932:58:0;;6294:2:1;16932:58:0;;;6276:21:1;6333:2;6313:18;;;6306:30;6372:34;6352:18;;;6345:62;-1:-1:-1;;;6423:18:1;;;6416:34;6467:19;;16932:58:0;6092:400:1;16932:58:0;17006:6;17016:1;17006:11;17003:92;;17034:28;17050:4;17056:2;17060:1;17034:15;:28::i;:::-;16618:3952;;;:::o;17003:92::-;-1:-1:-1;;;;;17110:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;17139:23:0;;;;;;:19;:23;;;;;;;;17110:52;17107:137;;;17178:33;17194:4;17200:2;17204:6;17178:15;:33::i;17107:137::-;17260:17;;-1:-1:-1;;;17260:17:0;;;;17256:172;;;654:6;;-1:-1:-1;;;;;17299:13:0;;;654:6;;17299:13;;;;:29;;-1:-1:-1;654:6:0;;-1:-1:-1;;;;;17316:12:0;;;654:6;;17316:12;;17299:29;:64;;;;-1:-1:-1;;;;;;17332:31:0;;;;;;:25;:31;;;;;;;;17299:64;17295:113;;;17382:6;;17374;:14;;17365:43;;;;-1:-1:-1;;;17365:43:0;;6699:2:1;17365:43:0;;;6681:21:1;6738:2;6718:18;;;6711:30;-1:-1:-1;;;6757:18:1;;;6750:45;6812:18;;17365:43:0;6497:339:1;17365:43:0;17440:32;17463:4;17469:2;17440:22;:32::i;:::-;17534:4;17485:28;10296:18;;;;;;;;;;;17592;;17568:42;;;;;;;17627:33;;-1:-1:-1;17652:8:0;;-1:-1:-1;;;17652:8:0;;;;17651:9;17627:33;:79;;;;-1:-1:-1;;;;;;17677:29:0;;;;;;:25;:29;;;;;;;;17627:79;:126;;;;;17752:1;17737:12;;17723:11;;:26;;;;:::i;:::-;:30;17627:126;17623:1831;;;17780:8;:15;;-1:-1:-1;;;;17780:15:0;-1:-1:-1;;;17780:15:0;;;17877:13;;17862:12;;17780:15;;;;17862:28;;17877:13;17862:28;:::i;:::-;:32;17859:214;;;17984:6;;17967:13;;17952:12;;:28;;;;:::i;:::-;17928:53;;:20;:53;:::i;:::-;:62;;;;:::i;:::-;17915:75;;18009:48;18033:4;13753:42;18046:10;18009:15;:48::i;:::-;18089:34;18113:10;18089:34;;:::i;:::-;;;18140:16;18221;;18203:15;;:34;;;;:::i;:::-;18180:18;;18160:17;;:38;;;;:::i;:::-;18159:79;;;;:::i;:::-;18140:98;;18293:1;18270:20;:24;:40;;;;;18309:1;18298:8;:12;18270:40;18267:1143;;;18422:16;;;18436:1;18422:16;;;;;;;;18356:21;;18331:22;;18422:16;18436:1;18422:16;;;;;;;;;;-1:-1:-1;18422:16:0;18398:40;;18475:4;18457;18462:1;18457:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18457:23:0;;;:7;;;;;;;;;;:23;;;;18509:15;;:22;;;-1:-1:-1;;;18509:22:0;;;;:15;;;;;:20;;:22;;;;;18457:7;;18509:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18499:4;18504:1;18499:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18499:32:0;;;:7;;;;;;;;;:32;18552:15;;:235;;-1:-1:-1;;;18552:235:0;;:15;;;:66;;:235;;18641:20;;18552:15;;18708:4;;18743;;18771:15;;18552:235;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18824:18;18869:14;18845:21;:38;;;;:::i;:::-;18824:59;;18950:1;18928:18;;18908:17;;:38;;;;:::i;:::-;18907:44;18904:249;;;18976:20;19055:8;19033:18;;19013:17;;:38;;;;:::i;:::-;18999:53;;:10;:53;:::i;:::-;:64;;;;:::i;:::-;19102:15;;18976:87;;-1:-1:-1;19086:47:0;;-1:-1:-1;;;;;19102:15:0;18976:87;19086:7;:47::i;:::-;18953:200;18904:249;19215:1;19195:16;;19177:15;;:34;;;;:::i;:::-;19176:40;19173:222;;;19241:17;19313:8;19293:16;;19275:15;;:34;;;;:::i;:::-;19261:49;;:10;:49;:::i;:::-;:60;;;;:::i;:::-;19241:80;;19344:31;19365:9;19344:20;:31::i;:::-;19218:177;19173:222;18312:1098;;;18267:1143;-1:-1:-1;;19426:8:0;:16;;-1:-1:-1;;;;19426:16:0;;;17623:1831;19482:8;;-1:-1:-1;;;;;19506:25:0;;19466:12;19506:25;;;:19;:25;;;;;;19482:8;-1:-1:-1;;;19482:8:0;;;;;19481:9;;19506:25;;:52;;-1:-1:-1;;;;;;19535:23:0;;;;;;:19;:23;;;;;;;;19506:52;19503:99;;;-1:-1:-1;19585:5:0;19503:99;19666:13;;-1:-1:-1;;;;;19658:21:0;;;19666:13;;19658:21;;;;:44;;-1:-1:-1;19689:13:0;;-1:-1:-1;;;;;19683:19:0;;;19689:13;;19683:19;;19658:44;:55;;;;;19706:7;19658:55;19655:102;;;-1:-1:-1;19740:5:0;19655:102;19772:7;19769:466;;;19840:13;;19796:18;;-1:-1:-1;;;;;19840:13:0;;;19832:21;;;;19829:227;;-1:-1:-1;19887:11:0;;19929:6;;-1:-1:-1;;;;;19911:15:0;;;;;;:11;:15;;;;;;:24;;19929:6;19911:24;:::i;:::-;19900:8;:35;19829:227;;;-1:-1:-1;19989:12:0;;20034:6;;-1:-1:-1;;;;;20014:17:0;;;;;;:11;:17;;;;;;:26;;20034:6;20014:26;:::i;:::-;20003:8;:37;19829:227;20107:6;;20070:12;;20085:19;20094:10;20085:6;:19;:::i;:::-;:28;;;;:::i;:::-;20070:43;-1:-1:-1;20151:13:0;20070:43;20151:6;:13;:::i;:::-;20142:22;;20181:42;20197:4;20211;20218;20181:15;:42::i;:::-;19781:454;;19769:466;20247:33;20263:4;20269:2;20273:6;20247:15;:33::i;:::-;-1:-1:-1;;;;;20305:31:0;;;;;;:25;:31;;;;;;;;20304:32;:59;;;;-1:-1:-1;;;;;;20341:22:0;;;;;;:16;:22;;;;;;;;20340:23;20304:59;20301:130;;;20370:15;;-1:-1:-1;;;;;20370:15:0;:24;20395:4;20401:15;20395:4;-1:-1:-1;;;;;10296:18:0;10269:7;10296:18;;;;;;;;;;;;10195:127;20401:15;20370:47;;-1:-1:-1;;;;;;20370:47:0;;;;;;;-1:-1:-1;;;;;9396:32:1;;;20370:47:0;;;9378:51:1;9445:18;;;9438:34;9351:18;;20370:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20366:63;;-1:-1:-1;;;;;20445:29:0;;;;;;:25;:29;;;;;;;;20444:30;:55;;;;-1:-1:-1;;;;;;20479:20:0;;;;;;:16;:20;;;;;;;;20478:21;20444:55;20441:122;;;20506:15;;-1:-1:-1;;;;;20506:15:0;:24;20531:2;20535:13;20531:2;-1:-1:-1;;;;;10296:18:0;10269:7;10296:18;;;;;;;;;;;;10195:127;20535:13;20506:43;;-1:-1:-1;;;;;;20506:43:0;;;;;;;-1:-1:-1;;;;;9396:32:1;;;20506:43:0;;;9378:51:1;9445:18;;;9438:34;9351:18;;20506:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20502:59;;16731:3839;;;16618:3952;;;:::o;1675:192::-;1761:7;1797:12;1789:6;;;;1781:29;;;;-1:-1:-1;;;1781:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1821:9:0;1833:5;1837:1;1833;:5;:::i;:::-;1821:17;1675:192;-1:-1:-1;;;;;1675:192:0:o;1346:181::-;1404:7;;1436:5;1440:1;1436;:5;:::i;:::-;1424:17;;1465:1;1460;:6;;1452:46;;;;-1:-1:-1;;;1452:46:0;;9685:2:1;1452:46:0;;;9667:21:1;9724:2;9704:18;;;9697:30;9763:29;9743:18;;;9736:57;9810:18;;1452:46:0;9483:351:1;1452:46:0;1518:1;1346:181;-1:-1:-1;;;1346:181:0:o;1124:191::-;1217:6;;;-1:-1:-1;;;;;1234:17:0;;;-1:-1:-1;;;;;;1234:17:0;;;;;;;1267:40;;1217:6;;;1234:17;1217:6;;1267:40;;1198:16;;1267:40;1187:128;1124:191;:::o;11715:569::-;-1:-1:-1;;;;;11855:20:0;;11847:70;;;;-1:-1:-1;;;11847:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11936:23:0;;11928:71;;;;-1:-1:-1;;;11928:71:0;;;;;;;:::i;:::-;12010:47;12031:6;12039:9;12050:6;12010:20;:47::i;:::-;12088:71;12110:6;12088:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12088:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;12068:17:0;;;:9;:17;;;;;;;;;;;:91;;;;12193:20;;;;;;;:32;;12218:6;12193:24;:32::i;:::-;-1:-1:-1;;;;;12170:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;12241:35;1593:25:1;;;12170:20:0;;12241:35;;;;;;1566:18:1;12241:35:0;1447:177:1;21352:370:0;-1:-1:-1;;;;;21433:31:0;;;;;;:25;:31;;;;;;;;21430:128;;;-1:-1:-1;;;;;21485:15:0;;;;;;:11;:15;;;;;;:20;:55;;-1:-1:-1;;;;;21525:15:0;;;;;;:11;:15;;;;;;21485:55;;;21507:15;21485:55;-1:-1:-1;;;;;21467:15:0;;;;;;;:11;:15;;;;;:73;;;;21542:7;:14;;-1:-1:-1;;;;;;21542:14:0;;;;;;;;;;21430:128;-1:-1:-1;;;;;21571:29:0;;;;;;:25;:29;;;;;;;;:59;;;;-1:-1:-1;;;;;;21605:25:0;;;;;;:19;:25;;;;;;;;21604:26;21571:59;:87;;;;-1:-1:-1;;;;;;21635:23:0;;;;;;:19;:23;;;;;;;;21634:24;21571:87;21568:147;;;21689:15;;-1:-1:-1;;;;;21689:15:0;10269:7;10296:18;;;;;;;;;;;21671:40;21663:49;;;;;;21352:370;;:::o;21815:114::-;21895:26;;-1:-1:-1;;;;;21895:18:0;;;:26;;;;;21914:6;;21895:26;;;;21914:6;21895:18;:26;;;;;;;;;;;;;;;;;;;20679:665;20767:16;;;20781:1;20767:16;;;;;;;;20743:21;;20767:16;;;;;;;;-1:-1:-1;;20804:15:0;;:22;;;-1:-1:-1;;;20804:22:0;;;;20743:40;;-1:-1:-1;;;;;;20804:15:0;;;;:20;;-1:-1:-1;20804:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20794:4;20799:1;20794:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;20794:32:0;;;-1:-1:-1;;;;;20794:32:0;;;;;20847:4;20837;20842:1;20837:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20837:14:0;;;:7;;;;;;;;;:14;20864:15;;:185;;-1:-1:-1;;;20864:185:0;;:15;;;:66;;20938:6;;20864:185;;:15;;20976:4;;21003;;21023:15;;20864:185;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21099:37:0;;-1:-1:-1;;;21099:37:0;;21130:4;21099:37;;;1385:51:1;21070:26:0;;-1:-1:-1;21106:4:0;-1:-1:-1;;;;;21099:22:0;;-1:-1:-1;21099:22:0;;-1:-1:-1;1358:18:1;;21099:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21192:15;;21162:67;;-1:-1:-1;;;21162:67:0;;-1:-1:-1;;;;;21192:15:0;;;21162:67;;;9378:51:1;9445:18;;;9438:34;;;21070:66:0;;-1:-1:-1;21147:12:0;;21169:4;21162:21;;;;;;9351:18:1;;21162:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21147:82;;21246:7;21242:95;;;21270:15;;:43;;-1:-1:-1;;;21270:43:0;;;;;1593:25:1;;;-1:-1:-1;;;;;21270:15:0;;;;:23;;1566:18:1;;21270:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20732:612;;;20679:665;:::o;22203:388::-;-1:-1:-1;;;;;22350:10:0;;13753:42;22350:10;:24;;;;;22373:1;22364:6;:10;22350:24;22346:238;;;-1:-1:-1;;;;;22393:25:0;;;;;;:19;:25;;;;;;;;22390:142;;;22447:1;22438:6;:10;22466:7;;-1:-1:-1;;;;;22466:7:0;10269;10296:18;;;;;;;;;;;22450:66;;22466:7;22483:4;;22490:25;;22511:4;;22490:25;:::i;:::-;22450:15;:66::i;:::-;22557:15;22548:6;:24;22203:388;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1629:456::-;1706:6;1714;1722;1775:2;1763:9;1754:7;1750:23;1746:32;1743:52;;;1791:1;1788;1781:12;1743:52;1830:9;1817:23;1849:31;1874:5;1849:31;:::i;:::-;1899:5;-1:-1:-1;1956:2:1;1941:18;;1928:32;1969:33;1928:32;1969:33;:::i;:::-;1629:456;;2021:7;;-1:-1:-1;;;2075:2:1;2060:18;;;;2047:32;;1629:456::o;2487:247::-;2546:6;2599:2;2587:9;2578:7;2574:23;2570:32;2567:52;;;2615:1;2612;2605:12;2567:52;2654:9;2641:23;2673:31;2698:5;2673:31;:::i;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:380::-;3211:1;3207:12;;;;3254;;;3275:61;;3329:4;3321:6;3317:17;3307:27;;3275:61;3382:2;3374:6;3371:14;3351:18;3348:38;3345:161;;3428:10;3423:3;3419:20;3416:1;3409:31;3463:4;3460:1;3453:15;3491:4;3488:1;3481:15;3345:161;;3132:380;;;:::o;3517:184::-;3587:6;3640:2;3628:9;3619:7;3615:23;3611:32;3608:52;;;3656:1;3653;3646:12;3608:52;-1:-1:-1;3679:16:1;;3517:184;-1:-1:-1;3517:184:1:o;3706:356::-;3908:2;3890:21;;;3927:18;;;3920:30;3986:34;3981:2;3966:18;;3959:62;4053:2;4038:18;;3706:356::o;5282:401::-;5484:2;5466:21;;;5523:2;5503:18;;;5496:30;5562:34;5557:2;5542:18;;5535:62;-1:-1:-1;;;5628:2:1;5613:18;;5606:35;5673:3;5658:19;;5282:401::o;5688:399::-;5890:2;5872:21;;;5929:2;5909:18;;;5902:30;5968:34;5963:2;5948:18;;5941:62;-1:-1:-1;;;6034:2:1;6019:18;;6012:33;6077:3;6062:19;;5688:399::o;6841:127::-;6902:10;6897:3;6893:20;6890:1;6883:31;6933:4;6930:1;6923:15;6957:4;6954:1;6947:15;6973:125;7038:9;;;7059:10;;;7056:36;;;7072:18;;:::i;7103:168::-;7176:9;;;7207;;7224:15;;;7218:22;;7204:37;7194:71;;7245:18;;:::i;7276:217::-;7316:1;7342;7332:132;;7386:10;7381:3;7377:20;7374:1;7367:31;7421:4;7418:1;7411:15;7449:4;7446:1;7439:15;7332:132;-1:-1:-1;7478:9:1;;7276:217::o;7498:128::-;7565:9;;;7586:11;;;7583:37;;;7600:18;;:::i;7763:127::-;7824:10;7819:3;7815:20;7812:1;7805:31;7855:4;7852:1;7845:15;7879:4;7876:1;7869:15;7895:251;7965:6;8018:2;8006:9;7997:7;7993:23;7989:32;7986:52;;;8034:1;8031;8024:12;7986:52;8066:9;8060:16;8085:31;8110:5;8085:31;:::i;8151:461::-;8204:3;8242:5;8236:12;8269:6;8264:3;8257:19;8295:4;8324:2;8319:3;8315:12;8308:19;;8361:2;8354:5;8350:14;8382:1;8392:195;8406:6;8403:1;8400:13;8392:195;;;8471:13;;-1:-1:-1;;;;;8467:39:1;8455:52;;8527:12;;;;8562:15;;;;8503:1;8421:9;8392:195;;;-1:-1:-1;8603:3:1;;8151:461;-1:-1:-1;;;;;8151:461:1:o;8617:582::-;8916:6;8905:9;8898:25;8959:6;8954:2;8943:9;8939:18;8932:34;9002:3;8997:2;8986:9;8982:18;8975:31;8879:4;9023:57;9075:3;9064:9;9060:19;9052:6;9023:57;:::i;:::-;-1:-1:-1;;;;;9116:32:1;;;;9111:2;9096:18;;9089:60;-1:-1:-1;9180:3:1;9165:19;9158:35;9015:65;8617:582;-1:-1:-1;;;8617:582:1:o;9839:510::-;10110:6;10099:9;10092:25;10153:3;10148:2;10137:9;10133:18;10126:31;10073:4;10174:57;10226:3;10215:9;10211:19;10203:6;10174:57;:::i;:::-;-1:-1:-1;;;;;10267:32:1;;;;10262:2;10247:18;;10240:60;-1:-1:-1;10331:2:1;10316:18;10309:34;10166:65;9839:510;-1:-1:-1;;9839:510:1:o;10354:277::-;10421:6;10474:2;10462:9;10453:7;10449:23;10445:32;10442:52;;;10490:1;10487;10480:12;10442:52;10522:9;10516:16;10575:5;10568:13;10561:21;10554:5;10551:32;10541:60;;10597:1;10594;10587:12

Swarm Source

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